🎯 До ЕГЭ по информатике:
--дней
:
--часов
:
--минут
:
--секунд
20

Теория игр — №20

Список начальных позиций, при которых 1-й не выигрывает за 1 ход, но выигрывает за 3.

Python
from functools import lru_cache

@lru_cache(None)
def f(s, m):
    if s >= 132: return m % 2 == 0
    if m == 0: return False
    h = [f(s+3, m-1), f(s+6, m-1), f(s*3, m-1)]
    return any(h) if m % 2 != 0 else all(h)

# Ответ на №20: позиции, где 1-й не выигрывает за 1 ход, но выигрывает за 3
print('#20', [s for s in range(1, 132) if not f(s, 1) and f(s, 3)])

📚 Теория

Продолжение теории игр. Анализ позиций на горизонте 1 и 3 хода.