Подготовка к школе
1 класс
2 класс
3 класс
4 класс
5 класс
6 класс
7 класс
8 класс
9 класс
10 класс
11 класс
ОГЭ
ЕГЭ
Для всех
Назад

20. Выигрышная стратегия: часть 2: #295309

Сообщить о проблеме
Задание #295309
Задание было решено верно
Задание было решено неверно

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя.

За один ход игрок может:
– добавить в одну из куч (по своему выбору) $2$ камня;
– увеличить количество камней в одной из куч (по своему выбору) в $3$ раза.

Например, пусть в одной куче $20$ камней, а в другой $30$ камней; такую позицию в игре обозначим $(20, 30)$. Тогда за один ход можно получить любую из четырёх позиций: $(22, 30)$, $(20, 32)$, $(60, 30)$, $(20, 90)$.

Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней. Игра завершается в тот момент, когда суммарное количество камней в двух кучах становится не менее $97$. Победителем считается игрок, сделавший последний ход, то есть первым получивший такую игровую позицию, при которой в двух кучах суммарно $97$ камней или больше.

В начальный момент в первой куче было $8$ камней, во второй куче – $S$ камней; $1 \leq S \leq 88$.

Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.

Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети.

Для игры, описанной в задании $19$, найдите два наименьших значения $S$, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:

  • Петя не может выиграть за один ход;
  • Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.

Найденные значения запишите в ответе в порядке возрастания без пробелов.

Первый способ – математическое решение

Петя не должен выигрывать первым ходом, поэтому:

$8+3S<97$,
$S\leq29$.

Первое подходящее значение: $S=23$. Петя утраивает первую кучу: $(8;23)\rightarrow(24;23)$.

Ваня может получить: $(26;23),\ (24;25),\ (72;23),\ (24;69)$.

Из каждой такой позиции Петя выигрывает следующим ходом:

  • $(26;23)\rightarrow(78;23)$, сумма $101$;
  • $(24;25)\rightarrow(72;25)$, сумма $97$;
  • $(72;23)\rightarrow(74;23)$, сумма $97$;
  • $(24;69)\rightarrow(26;69)$, сумма $95$ — этот ход не выигрывает, поэтому Петя утраивает первую кучу: $(72;69)$, сумма $141$.

При $S=24$ Петя действует аналогично: $(8;24)\rightarrow(24;24)$, и после любого хода Вани выигрывает следующим ходом.

Для $S<23$ гарантированной победы вторым ходом у Пети нет.

Ответ: $23,\ 24$.

Второй способ – решение с помощью Python

def moves(a, b):
    return [(a + 2, b), (a, b + 2),
            (a * 3, b), (a, b * 3)]

def win1(a, b):
    return a + b < 97 and any(
        x + y >= 97 for x, y in moves(a, b)
    )

ans = []

for S in range(1, 89):
    if not win1(8, S):
        if any(
            all(
                x + y < 97 and win1(x, y)
                for x, y in moves(a, b)
            )
            for a, b in moves(8, S)
        ):
            ans.append(S)

print(ans[:2])

Программа проверяет, что Петя не может выиграть первым ходом, а затем ищет такой его ход, после которого при любом ходе Вани Петя выигрывает следующим ходом.

Программа выведет: $[23,\ 24]$.

Показать
Очки опыта 20
Спросить Зави
0 заданий сегодня

Предложить улучшение