Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Первый ход делает Петя. За один ход игрок может: добавить в одну из куч 1 камень; увеличить количество камней в одной из куч в 3 раза. Игра завершается, когда суммарное количество камней в двух кучах становится не менее 155. В начальный момент в первой куче 15 камней, во второй — камней; .
Для игры, описанной в задании 19, найдите наименьшее значение , при котором одновременно выполняются два условия:
-
у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
-
у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
Решение:
Решение на Python:
from functools import lru_cache
@lru_cache(None)
def F(k1, k2, x):
if k1+k2 >= 155: return x % 2 == 0
if x == 0: return 0
h = [F(k1+1,k2,x-1), F(k1*3,k2,x-1),
F(k1,k2+1,x-1), F(k1,k2*3,x-1)]
return any(h) if x % 2 != 0 else all(h)
print(min([k for k in range(1, 140)
if F(15, k, 4) and not F(15, k, 2)]))
Ответ:
45
ЕГЭ · Информатика · Основная волна (день 1) 2026