5 мин чтения

Задание 5 ЕГЭ по информатике — алгоритмический исполнитель, обратный ход

Разбор задания 5 ЕГЭ по информатике: алгоритмический исполнитель, техника обратного хода, дерево состояний, Python-симулятор и пошаговые примеры.

О чём задание 5

В задании 5 ЕГЭ по информатике работает алгоритмический исполнитель. Это условный «робот», который принимает на вход число и применяет к нему 2-3 команды по списку. Тебе показывают программу (последовательность команд) и задают вопрос: какое начальное число подобрать, чтобы получить заданное M, или сколько чисел из диапазона подойдут.

Задание стоит 1 первичный балл и занимает 5-7 минут, если ты знаешь главную технику — обратный ход. Без неё задача превращается в перебор сотен вариантов. С ней — в аккуратное дерево на 10-20 узлов.

Типовой вид исполнителя

На экзамене 2026 года команды обычно такие:

  • К1 — прибавить 1 (или другое число)
  • К2 — умножить на 2 (или 3)
  • К3 — прибавить 3 (или вычесть 1)

Программа — это строка команд, например 112121. Исполнитель берёт стартовое число, применяет команды слева направо и выдаёт результат.

Пример. Команды: К1 = «+1», К2 = «·2». Программа 1212.

Старт = 3. Применяем:

  • 1: 3 + 1 = 4
  • 2: 4 · 2 = 8
  • 1: 8 + 1 = 9
  • 2: 9 · 2 = 18

Финал = 18.

Казалось бы, задача тривиальная. Но формулировка задания 5 делает её интересной.

Три типичные формулировки

Тип 1. Найти минимальное (максимальное) начальное число

«Для исполнителя с командами К1 и К2 известно: он выполняет ровно 5 команд и получает число 20. Команды выбирает сам, последовательно. Какое минимальное начальное число N могло быть?»

Здесь команды не фиксированы — исполнитель сам подбирает. Нужно найти минимальное N, при котором вообще возможна цепочка из 5 команд, приводящая к 20.

Тип 2. Посчитать число подходящих стартов

«Сколько чисел из диапазона [1, 100] при программе К1К2К1К2 дают результат ≥ 50?»

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

Тип 3. Реверс конкретной программы

«Программа К2К1К2К1К1 даёт на выходе 47. Какое было начальное число?»

Здесь команды фиксированы, достаточно просто обратить их в обратном порядке — и найти N.

Техника обратного хода: главный приём

Идея простая: вместо того чтобы угадывать начальное число и прогонять вперёд, иди от финального числа назад. Каждая команда имеет обратную операцию:

Прямая командаОбратнаяУсловие применимости
+1−1всегда
+k−kрезультат ≥ 0 (или > 0)
·2/2число чётное
·3/3делится на 3

Обратный ход превращает дерево из экспоненциально растущего в узкое: на каждом шаге из двух команд только одна часто применима (например, ·2 обратима только для чётных). Это сокращает перебор в разы.

Пошаговый пример с обратным ходом

Условие. Команды: К1 = «+1», К2 = «·2». Исполнитель делает ровно 4 команды, результат = 10. Сколько разных начальных чисел могут быть?

Идём от 10, делая 4 обратных шага.

Шаг 0 (уровень 0): {10}

Шаг 1 (уровень 1): для 10 применимы обе обратные команды.

  • обратная К1: 10 − 1 = 9
  • обратная К2: 10 / 2 = 5 (10 чётное — делится)

На уровне 1: {9, 5}

Шаг 2 (уровень 2):

  • из 9: обратная К1 → 8; обратная К2 — не применима (9 нечётное)
  • из 5: обратная К1 → 4; обратная К2 — не применима

На уровне 2: {8, 4}

Шаг 3:

  • из 8: К1 → 7, К2 → 4
  • из 4: К1 → 3, К2 → 2

Уровень 3: {7, 4, 3, 2}

Шаг 4:

  • из 7: К1 → 6; К2 нельзя
  • из 4: К1 → 3, К2 → 2
  • из 3: К1 → 2; К2 нельзя
  • из 2: К1 → 1, К2 → 1

Уровень 4 (с учётом дубликатов): {6, 3, 2, 1}. После удаления повторов — 4 разных начальных числа.

Ответ: 4.

Заметь: если бы ты шёл вперёд, тебе пришлось бы перебирать все стартовые N и все цепочки из 4 команд — это 2⁴ = 16 веток на каждое N, и ещё непонятно, какие N пробовать. Обратный ход сразу отсекает нерабочие ветви.

Дерево состояний: как рисовать на черновике

На экзамене удобно вести дерево от корня (финальное число) вниз:

                10
              /    \
         [-1]9     [/2]5
          |         |
         [-1]8    [-1]4
        /    \      /   \
     [-1]7  [/2]4 [-1]3 [/2]2
      |    /  \   |    /  \
      6  3   2   2   1   1

Каждый уровень — шаг назад. На каждом уровне помечай, какая команда применима (или нет). Листья на нужной глубине — ответ.

Совет: сразу удаляй дубликаты в задачах «сколько разных начальных чисел». Если же задача «сколько цепочек» — дубликаты оставляй, потому что разные пути — это разные цепочки.

Python-симулятор

Если времени достаточно и цифры большие, быстрее написать короткий скрипт. На КЕГЭ Python доступен, так что пользуйся. Разбор эффективного стиля — в Python-идиомах для ЕГЭ.

Вариант 1: прогнать конкретную программу

def apply_command(x, cmd):
    if cmd == 1:
        return x + 1
    if cmd == 2:
        return x * 2
    raise ValueError(cmd)

def run(n, program):
    x = n
    for c in program:
        x = apply_command(x, c)
    return x

# «Для скольких N из [1,100] программа 1212 даёт >= 50?»
program = [1, 2, 1, 2]
count = sum(1 for n in range(1, 101) if run(n, program) >= 50)
print(count)

Вариант 2: обратный ход с BFS

Если нужно найти все начальные числа, из которых за K шагов получается M:

from collections import deque

def reverse_step(x, cmd):
    if cmd == 1:
        return x - 1
    if cmd == 2:
        return x // 2 if x % 2 == 0 else None
    return None

def find_starts(target, steps, commands=(1, 2)):
    current = {target}
    for _ in range(steps):
        nxt = set()
        for x in current:
            for c in commands:
                y = reverse_step(x, c)
                if y is not None and y > 0:
                    nxt.add(y)
        current = nxt
    return current

starts = find_starts(target=10, steps=4)
print(len(starts), sorted(starts))

10-15 строк, решает любой типовой вариант. На экзамене держи такой шаблон в памяти — подставишь команды и диапазон за минуту.

Разбор более сложного примера

Условие. Команды: К1 = «+2», К2 = «·3», К3 = «+5». Программа выполняет ровно 3 команды, результат = 20. Сколько различных начальных чисел ≥ 1 могут быть?

Идём обратно от 20 на 3 шага.

Уровень 1 (обратные команды к 20):

  • −2 → 18
  • /3 — 20 не делится на 3, не применима
  • −5 → 15

На уровне 1: {18, 15}

Уровень 2 (от каждого):

  • 18: −2 → 16; /3 → 6; −5 → 13
  • 15: −2 → 13; /3 → 5; −5 → 10

Уровень 2: {16, 6, 13, 5, 10}

Уровень 3:

  • 16: −2 → 14; /3 — нет; −5 → 11
  • 6: −2 → 4; /3 → 2; −5 → 1
  • 13: −2 → 11; /3 — нет; −5 → 8
  • 5: −2 → 3; /3 — нет; −5 → 0 (отбрасываем, ≥ 1)
  • 10: −2 → 8; /3 — нет; −5 → 5

Уровень 3 (уникальные, ≥ 1): {14, 11, 4, 2, 1, 8, 3, 5}.

Ответ: 8 различных начальных чисел.

Проверить можно Python-скриптом выше, заменив commands на свои — совпадут.

Типичные ошибки

1. Пропуск ветки при обратном ходе. Самое частое — забыть проверить, применима ли обратная команда. Для /2 число должно быть чётным, иначе этой ветки просто нет. Забыл проверить — «родил» лишнего ребёнка, получил неверный ответ.

2. Учёт/неучёт дубликатов. «Сколько различных N» — удаляй повторы (используй множество). «Сколько разных цепочек команд» — повторы оставляй, потому что одинаковый N может получаться двумя разными программами.

3. Выход за границу диапазона. Если условие говорит «N ≥ 1» или «N из [1, 100]», всегда фильтруй. Ноль и отрицательные — не ответ.

4. Неправильный порядок обратных команд. Если прямая программа = К1К2К3, обратный ход начинается с обратной К3, потом К2, потом К1. Порядок инвертируется. Путаница здесь — мгновенная потеря балла.

5. Ручной перебор при больших K. Если шагов больше 6-7 и команд 3, ручное дерево разрастается. Не мучайся — пиши Python-скрипт. Типичная ошибка слабых — пытаться решить 10 шагов на листочке.

Общий список подводных камней — в разборе типичных ошибок ЕГЭ.

Тайминг и тактика на экзамене

На задание 5 отводи 5-7 минут:

  1. Прочитай условие 2 раза. Выпиши: команды, их эффект, длину программы, целевое число, ограничения на N.
  2. Реши, прямой ход или обратный. В 90% случаев — обратный.
  3. Если 2 команды и ≤ 5 шагов — руками по дереву.
  4. Если 3 команды или ≥ 6 шагов — пиши Python (BFS по обратным переходам).
  5. Финальная проверка: возьми найденный N, прогони вперёд, сравни с целью.

Если после 10 минут не ясно — пропусти и вернись. 1 балл того не стоит по сравнению с заданием 27 на 2 балла.

Связь с другими заданиями

Идея обратного хода работает и в других задачах: задание 23 на количество программ, в некоторых подтипах исполнителей с ветвлением. Общий принцип «иди от цели» — одна из базовых техник в ЕГЭ по информатике, так что, освоив его на задании 5, ты прокачал навык для ещё нескольких номеров.

Для общей стратегии подготовки — план на 3 месяца, разбор структуры КЕГЭ 2026, расклад по баллам и вузам.

Как тренироваться

Минимум за 2 недели до экзамена:

  1. 15-20 задач из банка ФИПИ на задание 5. Начни с 2 команд, закончи на 3.
  2. Напиши свой Python-шаблон обратного хода на 15 строк. Запомни наизусть.
  3. Решай руками и проверяй кодом — найдёшь, где ошибаешься.
  4. 3 полных пробника с засечкой времени: убедись, что укладываешься в 7 минут.
  5. Прогони разбор демоверсии 2026, когда её выложит ФИПИ — там всегда есть актуальный вариант задания 5.

Если на пробнике получил меньше половины — что делать, если провалил пробник.

Итого

Задание 5 — это обратный ход плюс аккуратное дерево. Команды инвертируются по стандартной таблице, ветви отсекаются условием применимости, ответ часто на глубине 3-5. Если команд 3 и шагов больше 6 — пиши Python за минуту. Две недели осмысленной тренировки — и задание 5 становится автоматическим баллом.

Частые вопросы

Что такое алгоритмический исполнитель в задании 5?

Это абстрактный «робот», который выполняет 2-3 команды над числом. Типовые команды: прибавить 1, умножить на 2, прибавить какую-то константу. Тебе дают программу из этих команд и просят найти: либо начальное число, либо финальное, либо количество вариантов добраться до цели.

Зачем нужна техника обратного хода?

Прямой перебор всех вариантов быстро взрывается: 3 команды на 10 шагов дают 3¹⁰ = 59049 веток. Если же идти от финального числа к начальному, команды часто становятся однозначными (например, «умножили на 2» обратимо только при чётном числе). Дерево обратных ходов гораздо компактнее.

Как обратить каждую команду?

Прибавить 1 → вычесть 1 (всегда возможно). Умножить на 2 → разделить на 2 (только если число чётное). Прибавить k → вычесть k (если результат ≥ начального диапазона). Главное — проверяй условие применимости: не любое число можно разделить на 2 нацело.

Нужно ли писать код на экзамене для задания 5?

Формально не обязательно — задача решается ручным деревом за 5-7 минут. Но если команды запутанные и шагов больше 6, Python-симулятор из 10 строк решит за секунды. На КЕГЭ можно пользоваться IDLE или другой IDE, этим грех не воспользоваться. Подробнее про выбор языка — Python или C++ на ЕГЭ.

В каких форматах встречается задание 5?

Три частых типа: 1) найти минимальное (или максимальное) начальное число, при котором программа получает заданное M; 2) посчитать количество начальных чисел из диапазона, дающих нужный результат; 3) найти число, которое после конкретной последовательности команд станет заданным.

Что делать, если есть команда деления или вычитания?

Инвертируй аккуратно: вычитание → прибавление, деление → умножение. Но следи за целочисленностью: если в прямом ходе деление только нацело, в обратном надо умножать и проверять, что результат не выходит за границы диапазона из условия.

Сколько времени отводить на задание 5?

5-7 минут. Задание на 1 балл, сложнее 4-го, но проще 6-го. Если уходит больше 10 минут — значит, ты забыл про обратный ход или путаешь правила команд. Перечитай условие, перепроверь таблицу инверсий, нарисуй дерево на черновике.

Где тренировать задание 5?

Банк ФИПИ (фильтр по номеру задания), сайт Полякова (раздел «Исполнитель»), сборники Крылова и Ушакова. TuteMe генерирует такие задачи автоматически с разбором обратного хода и Python-кодом для проверки — удобно отслеживать свой прогресс.

Готов применять на практике?

В тренажёре TuteMe — 2000+ заданий ЕГЭ по информатике с автоматической проверкой и подробным разбором. AI-помощник подсказывает, где ты ошибаешься, и подбирает задания под твой уровень.

Начать бесплатно →