Бесплатное занятие с репетитором 1 на 1! Оценим уровень знаний, разберём тему,
сформируем план подготовки к ЕГЭ. Запишись через тг-бот

осталось мест 52
Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Тренировки Пробники Статистика Карточки Учебник Об экзамене Учительская
  • Тренажёр заданий ЕГЭ
  • Тренажёр ЕГЭ по Информатике
  • Список заданий №21
  • Задание №21
  • Задание №89436 ЕГЭ Информатике

    Условие задания #89436

    №21 по КИМ

    Для игры, описанной в задании 19, найдите минимальное значение S, при котором одновременно выполняются два

    условия:

    —  у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;

    —  у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.

    Если найдено несколько значений S, в ответе укажите наименьшее из них.

    Ответ

    Ответ:

    23

    Решение

    def f(x, y, h):
        if (h == 3 or h == 5) and x + y >= 59:
            return 1
        elif h == 5 and x + y < 59:
            return 0
        elif x + y >= 59 and h < 5:
            return 0
        else:
            if h % 2 == 0:
                return f(x + 1, y, h + 1) or f(x, y + 1, h + 1) or f(x * 2, y, h + 1) or f(x, y * 2, h + 1)  # стратегия победителя
            else:
                return f(x + 1, y, h + 1) and f(x, y + 1, h + 1) and f(x * 2, y, h + 1) and f(x, y * 2, h + 1)  # стратегия проигравшего(любой ход)
     
    def f1(x, y, h):
        if h == 3 and x + y >= 59:
            return 1
        elif h == 3 and x + y < 59:
            return 0
        elif x + y >= 59 and h < 3:
            return 0
        else:
            if h % 2 == 0:
                return f1(x + 1, y, h + 1) or f1(x, y + 1, h + 1) or f1(x * 2, y, h + 1) or f1(x, y * 2, h + 1)  # стратегия победителя
            else:
                return f1(x + 1, y, h + 1) and f1(x, y + 1, h + 1) and f1(x * 2, y, h + 1) and f1(x, y * 2, h + 1)  # стратегия проигравшего(любой ход)
     
    for x in range(1, 54):
        if f(x, 5, 1) == 1:
            print(x)
    print("====")
    for x in range(1, 54):
        if f1(x, 5, 1) == 1:
            print(x)

    Видеоразбор:

    Понятно ли решение?

    Решения от учеников
    0

    Похожие задания

    15
    Задание №96Задание №945Задание №946Задание №947Задание №1132Задание №1133Задание №1134Задание №2154Задание №53258Задание №37888Задание №89436Задание №11001Задание №11000Задание №11002Задание №11003
    Бесплатно

    Решай задачи ЕГЭ в приложении

    Скачивай наш Тренажер ЕГЭ на iPhone или Android и тренируйся в любое время и в любом месте!

    Саша — ассистент в телеграмме