Задания
Версия для печати и копирования в MS WordДля игры, описанной в задании 19, найдите минимальное значение S, при котором одновременно выполняются два условия:
— у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
— у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
Решение.
Приведём решение на языке Python.
def Win(n, m):
return 0 if m <= 505 else any([Lose(n-1, m-3), Lose(n-1, m//5)])
def Lose(n, m):
return 1 if m <= 505 else 0 if not n else\
all([Win(n-1, m-3), Win(n-1, m//5)])
print('21)', min(m for m in range(506, 100000) if not Lose(2, m) and Lose(4, m)))
Ответ: 2536.

