19. Выигрышная стратегия: часть 1: #295308
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя.
Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение $S$, при котором такая ситуация возможна.
Первый способ – математическое решение
Чтобы получить минимальное $S$, Петя и Ваня должны максимально увеличивать вторую кучу — умножать её на $3$: $(8;S)\rightarrow(8;3S)\rightarrow(8;9S)$.
Для победы Вани:
$8+9S\geq97$,
$9S\geq89$,
$S\geq9{,}88\ldots$
Минимальное целое значение $S=10$.
Проверка: $(8;10)\rightarrow(8;30)\rightarrow(8;90)$.
После хода Пети сумма равна $38<97$, а после хода Вани: $8+90=98\geq97$.
Ответ: $10$.
Второй способ – решение с помощью Python
def moves(a, b):
return [(a + 2, b), (a, b + 2),
(a * 3, b), (a, b * 3)]
for S in range(1, 89):
if any(
a + b < 97 and
any(x + y >= 97 for x, y in moves(a, b))
for a, b in moves(8, S)
):
print(S)
break
Программа перебирает значения $S$ и проверяет, существует ли такой неудачный ход Пети, после которого Ваня может сразу выиграть.
Программа выведет: $10$.