Алгоритмы и рекурсия · тема 4 из 8

Игры: «есть ход» и «любой ход»

Стратегии · ЕГЭ 19–21

01 · Пойми идею

Одна идея — один пример

Выигрыш за один ход означает: существует ход, после которого достигнута цель. Это any(...). Для утверждения «после любого ответа соперника» нужен all(...).

s = 8
print(any(x >= 15 for x in (s + 1, s * 2)))

02 · Добавь следующий шаг

Теперь решаем самостоятельно

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

Твоя задача

Вводится порог t от 3 до 100. Из позиции s разрешены +1 и ×2. Выведи минимальное положительное s < t, из которого можно выиграть за один ход, достигнув числа не меньше t.

Пример входных данных и результата

Ввод:

15

Вывод:

8
Черновик и файл программы

Черновик сохраняется в этом браузере. Ctrl/⌘ + S — сохранить.

Результаты проверки

Напиши решение и нажми «Проверить код». Данные каждого теста подаются автоматически.

    Нужна подсказка?

    Перебери s по возрастанию, проверь оба результата хода.

    На чём легко ошибиться

    Позиции s >= t уже терминальные и не входят в поиск.

    Разобрать один из способов решения

    Сначала попробуй написать код сам. Сравни алгоритм, затем закрой разбор и воспроизведи решение без подсказки.

    t = int(input())
    for s in range(1, t):
        if any(x >= t for x in (s + 1, s * 2)):
            print(s)
            break

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

    03 · Закрепи

    Перед следующей темой

    Назови входные данные, результат, основной шаг алгоритма и граничный случай. Если использовал разбор, напиши решение заново. Для свободных экспериментов открой Python онлайн.

    Все темы этого курса
    1. Функция и возврат результата
    2. Рекурсия с базовым случаем
    3. Число программ исполнителя
    4. Игры: «есть ход» и «любой ход»
    5. Зависимости процессов
    6. Координаты вместо картинки
    7. Кванторы на конечной модели
    8. Исполнитель как состояние и лента

    Программа подготовлена по темам банка «Академии С». Официальные документы: ФИПИ. Справочник языка: Python. Не все экзаменационные задачи нужно решать программой: например, работа в таблицах требует освоения табличного редактора.