При каком значении S это возможно?
Условие
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один или четыре камня или увеличить количество камней в куче в два раза. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16, 19 или 30 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней.
Игра завершается в тот момент, когда количество камней в куче становится не менее 40. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу, в которой будет 40 или больше камней.В начальный момент в куче было S камней, 1 ≤ S ≤ 39.Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока — значит, описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника.
Известно, что Петя не может выиграть своим первым ходом, однако после любого хода Пети Ваня может выиграть. При каком значении S это возможно?
Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Как рассуждать
Решение. Сперва найдем, из каких позиций можно выиграть первым ходом (сразу). Это значения из диапазона [20; 39]. Увеличив кучу вдвое, игрок получает количество камней, достаточное для победы. Поэтому если игрок любым своим ходом приходит в одну из позиций выше, то он проигрывает. Такое значение S всего одно —
Осталось ещё 6 шагов
Приведём другое решение на языке Python.def…
# стратегия победителя else: return f(x +…
and f(x + 4, h +…
and f(x * 2, h +…
# стратегия проигравшего(любой ход) for x in…
== 1: print(x) break…
Бесплатно · займёт минуту