Задание 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 = 42: 4 · 2 = 81: 8 + 1 = 92: 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 минут:
- Прочитай условие 2 раза. Выпиши: команды, их эффект, длину программы, целевое число, ограничения на N.
- Реши, прямой ход или обратный. В 90% случаев — обратный.
- Если 2 команды и ≤ 5 шагов — руками по дереву.
- Если 3 команды или ≥ 6 шагов — пиши Python (BFS по обратным переходам).
- Финальная проверка: возьми найденный N, прогони вперёд, сравни с целью.
Если после 10 минут не ясно — пропусти и вернись. 1 балл того не стоит по сравнению с заданием 27 на 2 балла.
Связь с другими заданиями
Идея обратного хода работает и в других задачах: задание 23 на количество программ, в некоторых подтипах исполнителей с ветвлением. Общий принцип «иди от цели» — одна из базовых техник в ЕГЭ по информатике, так что, освоив его на задании 5, ты прокачал навык для ещё нескольких номеров.
Для общей стратегии подготовки — план на 3 месяца, разбор структуры КЕГЭ 2026, расклад по баллам и вузам.
Как тренироваться
Минимум за 2 недели до экзамена:
- 15-20 задач из банка ФИПИ на задание 5. Начни с 2 команд, закончи на 3.
- Напиши свой Python-шаблон обратного хода на 15 строк. Запомни наизусть.
- Решай руками и проверяй кодом — найдёшь, где ошибаешься.
- 3 полных пробника с засечкой времени: убедись, что укладываешься в 7 минут.
- Прогони разбор демоверсии 2026, когда её выложит ФИПИ — там всегда есть актуальный вариант задания 5.
Если на пробнике получил меньше половины — что делать, если провалил пробник.
Итого
Задание 5 — это обратный ход плюс аккуратное дерево. Команды инвертируются по стандартной таблице, ветви отсекаются условием применимости, ответ часто на глубине 3-5. Если команд 3 и шагов больше 6 — пиши Python за минуту. Две недели осмысленной тренировки — и задание 5 становится автоматическим баллом.