Игроки ходят по очереди, первый ход делает Петя. За один ход игрок
Условие
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в большую кучу любое количество камней от одного до трёх или удвоить количество камней в меньшей куче. Если кучи содержат равное количество камней, можно добавить в любую из них от одного до трёх камней, удвоение в этой ситуации запрещено.
Игра завершается, когда общее количество камней в кучах становится более 40. Победителем считается игрок, сделавший последний ход, то есть первым получивший 41 или больше камней в двух кучах.В начальный момент в первой куче было 5 камней, а во второй — S камней, 1 ≤ S ≤ 35.Укажите минимальное и максимальное из таких значений S, при которых Петя не может выиграть первым ходом, но у Пети есть выигрышная стратегия, позволяющая ему выиграть вторым ходом при любой игре Вани.В ответе запишите сначала минимальное значение, затем максимальное. Ответ:
Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Как рассуждать
Решение. Приведём решение на языке Python. def f(x, y, h): if h == 3 and x + y >= 41: return 1 if h == 3 and x + y < 41: return 0 if h < 3 and x + y >= 41: return 0 else: if h % 2 == 0: if x > y: return f(x + 1, y, h +
Осталось ещё 24 шагов
or f(x + 2, y, h +…
or f(x + 3, y, h +…
or f(x, y * 2, h +…
elif x < y: return f(x, y + 1, h +…
or f(x, y + 2, h +…
or f(x, y + 3, h +…
or f(x * 2, y, h +…
elif x == y: return f(x + 1, y, h +…
or f(x + 2, y, h +…
or f(x + 3, y, h +…
or f(x, y + 1, h +…
or f(x, y + 2, h +…
or f(x, y + 3, h +…
else: if x > y: return f(x + 1, y, h +…
and f(x + 2, y, h +…
and f(x + 3, y, h +…
and f(x, y * 2, h +…
elif x < y: return f(x, y + 1, h +…
and f(x, y + 2, h +…
and f(x, y + 3, h +…
and f(x * 2, y, h +…
elif x == y: return f(x + 1, y, h +…
and f(x + 2, y, h +…
and f(x + 3, y, h +…
Бесплатно · займёт минуту