Задание №20 ЕГЭ Информатика с ответом и решением
Ответ: 912
Условие
Два игрока, Паша и Вася, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Паша. За один ход игрок может добавить в кучу один или четыре камня или увеличить количество камней в куче в пять раз. Игра завершается в тот момент, когда количество камней в куче становится не менее 69. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу, в которой будет 69 или больше камней. В начальный момент в куче было S камней, 1 ≤ S ≤ 68.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока — значит, описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника. В описание выигрышной стратегии не следует включать ходы играющего по этой стратегии игрока, не являющиеся для него безусловно выигрышными, то есть не являющиеся выигрышными независимо от игры противника.
Найдите два таких значения S, при которых у Паши есть выигрышная стратегия, причём одновременно выполняются два условия:
— Паша не может выиграть за один ход;
— Паша может выиграть своим вторым ходом независимо от того, как будет ходить Вася.
Найденные значения запишите в ответе в порядке возрастания без разделительных знаков.
Подсказки — как подойти к решению
- Эта задача тоже решается разметкой позиций: для каждой кучи нужно понять, кто выигрывает при правильной игре и за сколько своих ходов — «за один ход», «за два хода».
- Условие «Паша не может выиграть за один ход» отсекает все S, из которых какой-нибудь ход сразу даёт 69 камней или больше. Условие «может выиграть своим вторым ходом независимо от игры Васи» требует найти такой ход Паши, после которого ЛЮБОЙ ответ Васи попадает в позицию, где Паша выигрывает за один ход.
- Проверяй кандидатов полным перебором: отметь позиции «победа за один ход», затем для каждого S проверь оба условия и выпиши подходящие значения по возрастанию без разделителей. Не путай саму кучу S с позициями, в которые игроки её переводят, и не бери кучи, из которых Паша побеждает сразу.
Решение
Возможные значения S: 9, 12. В этих случаях Паша не может выиграть первым ходом. Однако для S = 9 и 12 он может получить кучу 13 (при S = 9 он увеличивает количество камней в куче на четыре, при S = 12 добавляет к куче 1 камень). Тогда после первого хода Васи в куче будет 14 камней, или 17 камней, или 65 камней. Во всех случаях Паша увеличивает количество камней в куче в 5 раз и выигрывает вторым ходом.
Таким образом, ответ — 912.
Ответ: 912.
Приведём другое решение на языке Python.
def f(x, h):
if h == 4 and x >= 68:
return 1
elif h == 4 and x < 68:
return 0
elif x >= 68 and h < 4:
return 0
else:
if h % 2 != 0:
return f(x + 1, h + 1) or f(x + 4, h + 1) or f(x * 5, h + 1) # стратегия победителя
else:
return f(x + 1, h + 1) and f(x + 4, h + 1) and f(x * 5, h + 1) # сратегия проигравшего
for x in range(1, 68):
if f(x, 1) == 1:
print("Задача 20: ", x)
Типичные ошибки
- Ни одно из этих значений не выдерживает условие «при любом ходе соперника»: у Васи находится ответ, после которого Паша не побеждает своим вторым ходом. Проверяй кандидата по всем ответам соперника, а не по одному удобному.
- Это позиции, из которых Паша выигрывает уже своим первым ходом, а первое условие задания это прямо запрещает. Прежде чем проверять второй ход, убеждайся, что из S нельзя победить за один ход.
В тренажёре: подсказки по шагам, разбор твоей ошибки ИИ-репетитором (он не даёт готовый ответ), повторение ошибок по интервалам и общий прогресс. Все задания №20 по информатике