Для игры, описанной в задании 19, найдите минимальное значение S, при котором у Вани есть стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети, но у Вани нет стратегии, которая позволила бы ему гарантированно выиграть первым ходом.
Приведём решение на языке Python.
def Win(m, h):
return 0 if m <= 9 else any([Lose(m-k, h-1) for k in K]) \
if (K:=[i for i in range(2, 10) if not m%i]) else Win(m-1, h-1)
def Lose(m, h):
return 1 if m <= 9 else 0 if not h else all([Win(m-k, h-1) for k in K]) \
if (K:=[i for i in range(2, 10) if not m%i]) else Lose(m-1, h-1)
print('21)', [s for s in range(10, 50) if not Lose(s, 2) and Lose(s, 4)][0])
Ответ: 22.

