Задание 5 ОГЭ по информатике: алгоритм для исполнителя
Задание 5 ОГЭ по информатике описывает исполнителя с двумя пронумерованными командами, например «прибавь 3» и «умножь на 2». Нужно составить короткую программу, которая переводит одно число в другое, или найти неизвестный параметр команды. Удобнее всего идти от результата назад.
- Что проверяет: Умение анализировать простые алгоритмы для конкретного исполнителя с фиксированным набором команд: определение результата работы алгоритма и входных данных, которые к нему приводят (по проекту спецификации 2027 года). Базовый уровень.
- Баллы: 1 первичный балл
- Формат ответа: Последовательность номеров команд без пробелов (например, 12221) или одно число — значение параметра.
- Программа: задание решают без программы, ответ можно проверить на Python
- Уровень сложности: базовый
- Время: около 4 минут по спецификации
- Кодификатор: 3.4 — определение возможных результатов работы алгоритма при данном множестве входных данных, определение входных данных, приводящих к данному результату
Как решать
Тип 1: составить алгоритм. Начните с конечного числа и отменяйте команды в обратном порядке. Команда «умножь на 2» могла быть последней, только если число чётное; команда «прибавь 3» отменяется вычитанием 3. На каждом шаге выбирайте отмену, которая быстрее ведёт к начальному числу: деление обычно выгоднее вычитания. Когда дошли до начального числа, выпишите номера команд в прямом порядке — от начала к концу.
Если обратный ход ветвится, попробуйте обе ветки и оставьте ту, что укладывается в разрешённое число команд. В ответ годится любой подходящий алгоритм, если в условии сказано «запишите любой из них».
Тип 2: найти неизвестное число b в команде «умножь на b». Выполните программу в общем виде: подставьте начальное число, а на месте умножения запишите выражение с b. Получится уравнение, например 9b + 4 = 94. Решите его и проверьте, что b натуральное.
Проверка в обоих типах одна: выполните найденную программу от начального числа и убедитесь, что получилось конечное.
Примеры с решением
Пример 1
У исполнителя Вычислитель две команды, которым присвоены номера:
1. прибавь 3
2. умножь на 2
Первая из них увеличивает число на экране на 3, вторая увеличивает его в 2 раза. Составьте алгоритм получения из числа 1 числа 35, содержащий не более 5 команд. В ответе запишите только номера команд. Например, 21 — это алгоритм «умножь на 2, прибавь 3», который преобразует число 4 в число 11. Если таких алгоритмов более одного, то запишите любой из них.
Проверка ответа на Python
# Задание 5 ОГЭ, пример 1: из 1 получить 35 не более чем за 5 команд
# 1 — прибавь 3, 2 — умножь на 2
from itertools import product
commands = {"1": lambda x: x + 3, "2": lambda x: x * 2}
found = []
for length in range(1, 6):
for prog in product("12", repeat=length):
x = 1
for c in prog:
x = commands[c](x)
if x == 35:
found.append("".join(prog))
print(found[0] if len(found) == 1 else found)Ответ: 12221
Идём назад от 35. Число нечётное, умножением на 2 его не получить, значит, последней была команда 1: до неё было 32. Дальше выгодно делить: 32 → 16 → 8 → 4 (три команды 2). Из 4 вычитаем 3 и получаем 1 (команда 1). В прямом порядке: 1, 2, 2, 2, 1. Проверка: 1 + 3 = 4, 8, 16, 32, 32 + 3 = 35. Перебор всех программ до пяти команд показывает, что этот алгоритм единственный.
Пример 2
У исполнителя Альфа две команды, которым присвоены номера:
1. прибавь 2
2. умножь на b
(b — неизвестное натуральное число, b ≥ 2). Выполняя первую из них, Альфа увеличивает число на экране на 2, а выполняя вторую, умножает это число на b. Известно, что программа 11211 переводит число 5 в число 94. Определите значение b.
Проверка ответа на Python
# Задание 5 ОГЭ, пример 2: программа 11211 переводит 5 в 94; 1 — прибавь 2, 2 — умножь на b
found = []
for b in range(2, 1000):
x = 5
for c in "11211":
x = x + 2 if c == "1" else x * b
if x == 94:
found.append(b)
print(found[0] if len(found) == 1 else found)Ответ: 10
Выполним программу в общем виде: 5 + 2 = 7, 7 + 2 = 9, затем 9 · b, затем ещё два раза прибавить 2: 9b + 4. Уравнение 9b + 4 = 94 даёт 9b = 90, b = 10. Проверка: 9 · 10 + 4 = 94.
Типичные ошибки
- Записывают номера команд в обратном порядке — так, как находили их при движении от конца.
- Отменяют умножение у нечётного числа. Нечётное число не могло получиться умножением на 2.
- Выходят за ограничение на число команд, когда идут только вычитанием.
- В задаче с b забывают, что прибавления после умножения тоже меняют число.
Потренироваться на тренажёре
- Моделирование процессов на Python: пошаговое выполнение команд
- Перебор подмножеств на Python: как перебрать все программы из 1 и 2
Частые вопросы
Что писать, если подходит несколько алгоритмов?
Любой из них, если в условии есть фраза «если таких алгоритмов более одного, то запишите любой из них». Главное, чтобы алгоритм давал нужное число и не превышал разрешённое число команд.
Почему удобнее идти от конца?
От конечного числа видно, какая команда могла быть последней: например, нечётное число не получается умножением на 2. Движение от начала приходится делать перебором.
Как проверить ответ без компьютера?
Выполните программу вручную от начального числа, выписывая промежуточные значения. Это занимает меньше минуты и ловит перепутанный порядок команд.
Официальные материалы
- Демоверсия, спецификация и кодификатор ОГЭ 2027 по информатике (архив, проект)
- Открытый банк заданий ОГЭ
Другие задания
Все задания и структура экзамена — на странице ОГЭ по информатике. Соседние разборы: задание 4 и задание 6.
Описание задания сверено 28 сентября 2026 года со спецификацией 2027 года (документы 2027 года). Примеры составлены нами по структуре демоверсии, каждое решение запущено, и напечатанный им ответ совпадает с ответом на странице. Кодолимп не связан с разработчиками экзамена. Заметили неточность — напишите нам.