Untitled

 avatar
unknown
plain_text
2 years ago
1.7 kB
3
Indexable
print('задача 19:', end=' ')
def f(x, p):
    if x >= 55 or p > 3:  # условия остановки игры
        return p == 3  # возврат условия, что игра закончилась на 3 позиции (в1)
    if p % 2 == 0:  # ходы Вани
        return f(x + 1, p + 1) or f(x + 4, p + 1) or f(x * 3, p + 1)
    if p % 2 == 1:  # ходы Пети
        return f(x + 1, p + 1) and f(x + 4, p + 1) and f(x * 3, p + 1)
for s in range(1, 54 + 1):
    if f(s, 1):
        print(s)

print('задача 20:', end=' ')
def f(x, p):
    if x >= 55 or p > 4:  # условия остановки игры
        return p == 4  # возврат условия, что игра закончилась на 4 позиции (п2)
    if p % 2 == 1:  # ходы пети
        return f(x + 1, p + 1) or f(x + 4, p + 1) or f(x * 3, p + 1)
    else:  # ходы Вани
        return f(x + 1, p + 1) and f(x + 4, p + 1) and f(x * 3, p + 1)

cnt=0
for s in range(1, 54 + 1):
    if f(s, 1) and cnt<2:
        print(s, end=' ')
        cnt+=1

print('\nзадача 21:', end=' ')
def f(x, p):
    if x >= 55 or p > 5:  # условия остановки игры
        return p == 3 or p==5  # возврат условия, что игра закончилась на 3 или 5 позиции (в1,в2)
    if p % 2 == 0:  # ходы Вани
        return f(x + 1, p + 1) or f(x + 4, p + 1) or f(x * 3, p + 1)
    else:  # ходы Пети
        return f(x + 1, p + 1) and f(x + 4, p + 1) and f(x * 3, p + 1)

cnt=0
for s in range(1, 54 + 1):
    if f(s, 1) and cnt<2:
        print(s)
        break
Editor is loading...