Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела теория игр
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#23694

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

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

Показать ответ и решение

Аналитическое решение:

Скопируем область A2 : I5  и вставим ее в O2 : W 5  , O7 : W 10  , O12 : W 15  , O17 : W 20  . Это будут все возможные ситуации при разных первых ходах Пинки. Подпишем стобец O  как P 1  , S  как V1  , W  как P 2  .

Теперь надо написать старт, из которого начинается игра, и прописать формулы, по которым ходит Пинки. Пишем в K1  Start  , в K2  22  , а L2  любое значение S  . В M 2  запишем сумму K2  и L2  . В ячейках столбцов O  и P  пропишем формулы ходов Пинки (аналогично заполнению ячеек E2 : F 5  в 19 задаче). Осталось применить условное форматирование на ходы (ячейки, в которых суммы куч) Пинки зеленым, а на ходы Вжика красным.

Осталось только перебрать значения в L2  . При S > 53  видим, что Пинки не может выиграть. При S = 53,52  Пинки выигрывает вторым ходом, если первым делит вторую кучу на 2. Ответ 5253  .

 

Программное решение:

from functools import lru_cache


@lru_cache(None)
def f(a, b):
    if a + b <= 34:
        return 0
    moves = []
    if a > 0:
        moves.append(f(a - 1, b))
        moves.append(f(a // 2, b))
    if b > 0:
        moves.append(f(a, b - 1))
        moves.append(f(a, b // 2))
    pinki_win = [i for i in moves if i <= 0]
    if pinki_win:
        return -max(pinki_win) + 1
    else:
        return -max(moves)


for i in range(12, 100):
    if f(22, i) == 2:
        print(i)

Ответ: 5253

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!