Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один или четыре камня, либо увеличить количество камней в куче в четыре раза. У каждого игрока есть неограниченное количество камней, чтобы делать ходы.
Игра завершается в тот момент, когда количество камней в куче становится не менее 78.
Победителем считается игрок, сделавший последний ход, т.е. первым получивший кучу из 78 или более камня.
В начальный момент в куче было S камней; 1 ≤ S ≤ 77. Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Досрочный ЕГЭ по информатике 2023 г. Евгений Джобс – задание №19-21
19. Укажите минимальное значение S, при котором Ваня может выиграть своим первым ходом после любого хода Пети.
Ответ:
Решение:
Ответ: 19
20. Для игры, описанной в задании 19, найдите два минимальных значения S, при которых у Пети есть выигрышная стратегия вторым ходом, при этом он не может гарантировано выиграть за один ход.
Ответ:
Решение:
Ответ: 15, 18
21. Для игры, описанной в задании 19, найдите минимальное значение S, при котором одновременно выполняются два условия: — у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети; — у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
Ответ:
Решение на Python
|
1 2 3 4 5 6 7 8 |
def f(s, m): if s>=78: return m%2==0 if m==0: return 0 h=[f(s+1,m-1),f(s+4,m-1),f(s*4,m-1)] return any(h) if (m-1)%2==0 else all(h) print('19) ', [s for s in range(1, 78) if f(s,2)]) print('20) ', [s for s in range(1, 78) if not f(s,1) and f(s,3)]) print('21) ', [s for s in range(1, 78) if not f(s,2) and f(s,4)]) |
