Задание 21
Для игры, описанной в задании 19, найдите наименьшее значение , при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
Источник: ФИПИ, проект демоверсии ЕГЭ 2027, с. 18
Решение и ответ
Та же рекурсия, что в задании 20. Победа Вани первым ходом — , первым или вторым — .
from functools import lru_cache def moves(a, b): return (a + 4, b), (a, b + 4), (2 * a, b), (a, 2 * b) @lru_cache(None) def f(a, b, n): # n — сколько ходов осталось; при нечётном n ходит тот, чью победу проверяем if a + b >= 133: return n % 2 == 0 # последний ход сделал «наш» игрок if n == 0: return False h = [f(x, y, n - 1) for x, y in moves(a, b)] return any(h) if n % 2 == 1 else all(h) print([s for s in range(1, 116) if not f(17, s, 2) and f(17, s, 4)][:1])Ищем , где истинно, а ложно. Наименьшее — 44.
Ответ: 44