Задача к ЕГЭ по информатике на тему «Теория игр» №12

В игре, описанной в задании 19, в начальный момент в первой куче было S камней, а во второй – 7 камней, 1 ≤ S    ≤ 45 Найдите такое значение S, при котором у Вани есть стратегия, позволяющая ему выиграть вторым ходом при любой игре Пети, но у Вани нет стратегии, которая позволяла бы ему гарантированно выиграть первым ходом.

Программная реализация:

from functools import lru_cache
@lru_cache(None)
def f(a,b,c = 0):
    if a+b >= 61:
        return 0
    if c > 3:
        return 10000
    if a > b: t = [f(a+i,b,c+1) for i in range(1, a+1)]
    else: t = [f(a,b+i,c+1) for i in range(1, b+1)]
    n = [i for i in t if i <= 0]
    if n:
        return -max(n) + 1
    return -max(t)
ans = []
for i in range(1,46):
    if f(7,i) == -2:
        ans += [i]
print(ans)

Ответ: 12
Оцените статью
Я решу все!