Форум » Теория игр » Задание 3081 не сходится ответ » Ответить

Задание 3081 не сходится ответ

dgol: Здравствуйте, в задании 3081 в 3 вопросе не сходится ответ с предложенным. (№ 3081) (А. Кабанов) Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может а) добавить в кучу один камень; б) добавить в кучу два камня; г) увеличить количество камней в куче в три раза. Игра завершается в тот момент, когда количество камней в куче превышает 64. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу, в которой будет 65 или больше камней. В начальный момент в куче было S камней, 1 ≤ S ≤ 64. Ответьте на следующие вопросы: Вопрос 3. Найдите значение S, при котором одновременно выполняются два условия: – у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети; – у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом. 3) 18 Прога выдаёт 19, код вот [pre2]from functools import lru_cache @lru_cache(None) def g(h): if h > 64: return 0 ms = [h + 1, h * 2, h * 3] if any(g(x) == 0 for x in ms): return 1 if all(g(x) == 1 for x in ms): return 2 if any(g(x) == 2 for x in ms): return 3 if all(g(x) in (1, 3) for x in ms): return 4 for x in range(1, 65): if g(x) == 4: print(x, g(x))[/pre2]

Ответов - 1 новых

cabanov.alexey: б) добавить в кучу два камня; Вы умножаете на два )



полная версия страницы