ОГЭ · Информатика · Алгоритмы и анализ программ (задания 5, 6)
Задание 5: исполнители и алгоритмы
В задании 5 надо превратить одно число в другое с помощью двух команд исполнителя, уложившись в лимит (обычно 5 команд). Ключ — идти от результата назад, а не от старта вперёд.
- ⚠Превышают ограничение на длину алгоритма (не более 5 команд)
- ⚠Идут от начала вслепую, а не с конца (обратный ход быстрее)
- ⚠Записывают сами действия словами, а не номера команд
Формальные исполнители
Определение
Исполнитель — объект, который точно и формально выполняет заданные команды. У каждого исполнителя своя система команд
Определение
Система команд исполнителя (СКИ) — полный набор команд, которые исполнитель умеет выполнять. Всё, чего нет в СКИ, исполнитель сделать не может
Две стратегии решения
- • перебираем команды от старта
- • растёт число вариантов
- • годится при коротком пути
- • идём от цели к старту
- • если число — точный квадрат, извлекаем корень
- • иначе — вычитаем 1
- • быстрее и надёжнее
Почему обратный ход всегда быстрее прямого
Если идти от старта вперёд, на каждом шаге есть две возможности, и уже через пять шагов вариантов становится 32 — перебрать их за время экзамена нереально. Если же идти от результата назад, на каждом шаге возможность почти всегда одна. Смотри сам: пусть команды — «возведи в квадрат» и «прибавь 1». Мы стоим на числе N и спрашиваем: каким был предыдущий шаг? Если N — точный квадрат, предыдущим числом мог быть √N. Если нет, то последней командой точно было «прибавь 1», и предыдущее число равно N − 1. Двусмысленность возникает редко — только когда число одновременно и точный квадрат, и получается прибавлением единицы; в таком случае пробуем сначала извлечь корень, потому что это быстрее сокращает число и почти всегда укладывается в лимит команд. Правило универсальное: для любого исполнителя обратная операция к умножению — деление (делим, если делится нацело), обратная к прибавлению — вычитание. Дойдя до стартового числа, выписываем использованные команды и переворачиваем их порядок — это и есть ответ.
Ловушка: если подходящих алгоритмов несколько — можно записать любой, но он должен укладываться в лимит команд из условия.
| Квадратор | 1) возведи в квадрат, 2) прибавь 1. Обратный ход: извлеки корень или вычти 1 |
|---|---|
| Утроитель | 1) прибавь 1, 2) умножь на 3. Обратный ход: раздели на 3 (если делится) или вычти 1 |
| Удвоитель | 1) прибавь 1, 2) умножь на 2. Обратный ход: раздели на 2 для чётных, иначе вычти 1 |
| Вычислитель | 1) прибавь 2, 2) умножь на 3 — встречаются любые пары; принцип решения не меняется |
| Общее правило | команду умножения при обратном ходе применяй в первую очередь: она сокращает число быстрее и экономит команды |
| Формат ответа | только номера команд подряд, без пробелов и запятых: 11222, а не «квадрат, квадрат, +1…» |
Разбор примера
Квадратор: из 3 получить 84
У исполнителя Квадратор две команды: 1) возведи в квадрат, 2) прибавь 1. Составьте алгоритм получения из числа 3 числа 84, содержащий не более 5 команд.
Показать решение по шагам
- 1. Начинаем с конца, с числа 84. Это точный квадрат? 9² = 81, 10² = 100, значит нет. Следовательно, последней была команда «прибавь 1», и до неё было 83.
- 2. 83 — не квадрат, значит предыдущее число 82.
- 3. 82 — не квадрат, значит предыдущее число 81.
- 4. 81 — это 9², точный квадрат. Извлекаем корень: получаем 9.
- 5. 9 — это 3². Извлекаем корень: получаем 3. Это наше стартовое число, обратный ход завершён.
- 6. Выписываем обратные операции в том порядке, как шли назад: −1, −1, −1, √, √. Теперь переворачиваем порядок и заменяем каждую операцию на прямую команду: x², x², +1, +1, +1 — то есть команды 1, 1, 2, 2, 2.
- 7. Проверяем вперёд: 3 → 9 → 81 → 82 → 83 → 84. Ровно 5 команд — лимит соблюдён.
- 8. Ответ записываем как 11222.
Ответ: Ответ: 11222
Разбор примера
Квадратор: из 1 получить 17
У исполнителя Квадратор две команды: 1) возведи в квадрат, 2) прибавь 1. Составьте алгоритм получения из числа 1 числа 17, содержащий не более 5 команд.
Показать решение по шагам
- 1. От конца: 17 — не квадрат (16 и 25 рядом), значит предыдущее 16.
- 2. 16 = 4², извлекаем корень: 4.
- 3. 4 = 2², извлекаем корень: 2.
- 4. 2 — не квадрат, значит предыдущее 1. Это старт, готово.
- 5. Обратные операции назад: −1, √, √, −1. Переворачиваем порядок и заменяем на прямые команды: +1, x², x², +1 — это 2, 1, 1, 2.
- 6. Проверка вперёд: 1 → 2 → 4 → 16 → 17. Четыре команды, лимит не превышен.
- 7. Обрати внимание на первый шаг вперёд: из 1 квадрат делать бессмысленно, ведь 1² = 1 и число не меняется. Обратный ход это учёл автоматически.
- 8. Ответ: 2112.
Ответ: Ответ: 2112
Разбор примера
Утроитель: тот же приём для другого исполнителя
У исполнителя Утроитель две команды: 1) прибавь 1, 2) умножь на 3. Составьте алгоритм получения из числа 1 числа 21, содержащий не более 5 команд.
Показать решение по шагам
- 1. Обратные операции: к «умножь на 3» — раздели на 3 (только если делится нацело), к «прибавь 1» — вычти 1.
- 2. Начинаем с 21. Делится на 3? Да: 21 : 3 = 7. Делим в первую очередь, так число сокращается быстрее.
- 3. 7 на 3 не делится, значит вычитаем 1: 6.
- 4. 6 : 3 = 2.
- 5. 2 на 3 не делится, вычитаем 1: 1. Это старт.
- 6. Обратные операции назад: :3, −1, :3, −1. Переворачиваем порядок и заменяем на прямые команды: +1, ×3, +1, ×3 — это 1, 2, 1, 2.
- 7. Проверка вперёд: 1 → 2 → 6 → 7 → 21. Всё сходится, четыре команды.
- 8. Ответ: 1212.
Ответ: Ответ: 1212
Вопрос на проверку
Исполнитель Квадратор (1 — квадрат, 2 — прибавь 1). Какое число было на экране перед числом 26?
Ответить и проверить себя — после бесплатной регистрации.
Вопрос на проверку
Что записывают в бланк в ответе на задание 5?
Ответить и проверить себя — после бесплатной регистрации.
Проверка обязательна и занимает десять секунд: прогони свой ответ вперёд от стартового числа и убедись, что получилось ровно требуемое. Заодно пересчитай количество цифр в ответе — оно не должно превышать лимит из условия. Алгоритм из шести команд при лимите «не более 5» не засчитают, даже если он приводит к верному числу.
Разбор примера
Задание 5: из 2 получить 26 не более чем за 5 команд
У исполнителя Квадратор две команды: 1) возведи в квадрат; 2) прибавь 1. Составьте алгоритм получения из числа 2 числа 26, содержащий не более 5 команд. В ответе запишите только номера команд.
Показать решение по шагам
- 1. Идём от конца к началу: так перебор короче. Число 26 могло получиться либо как 25 + 1 (команда 2), либо как квадрат, но 26 не является квадратом целого числа — значит, последней была команда 2.
- 2. Теперь нужно получить 25. Это 5², значит, предыдущей могла быть команда 1 из числа 5.
- 3. Как получить 5 из 2? 5 = 4 + 1, а 4 = 2², то есть: 2 → (команда 1) 4 → (команда 2) 5.
- 4. Собираем цепочку в прямом порядке: 2 →¹ 4 →² 5 →¹ 25 →² 26. Номера команд: 1212, четыре команды — укладывается в лимит.
- 5. Проверка прямым ходом: 2² = 4; 4 + 1 = 5; 5² = 25; 25 + 1 = 26. Верно. Если ответов несколько, принимается любой, но каждая команда обязана быть проверена подстановкой.
Ответ: 1212
Разбор примера
Задание 5: из 1 получить 17
Тот же исполнитель. Составьте алгоритм получения из числа 1 числа 17, содержащий не более 5 команд.
Показать решение по шагам
- 1. Идём от конца: 17 не квадрат целого числа, значит, последняя команда — 2 (16 + 1).
- 2. 16 = 4², значит, перед этим была команда 1 из числа 4.
- 3. 4 = 2², значит, ещё раньше — команда 1 из числа 2.
- 4. 2 = 1 + 1, то есть из единицы получаем двойку командой 2.
- 5. Прямой ход: 1 →² 2 →¹ 4 →¹ 16 →² 17. Ответ 2112, четыре команды.
- 6. Почему обратный ход надёжнее прямого: из единицы возведение в квадрат бесполезно (1² = 1), и прямой перебор быстро разрастается. Идя от результата, на каждом шаге проверяешь всего две возможности: «это квадрат?» и «это предыдущее плюс один?».
Ответ: 2112
Разбор примера
Задание 5: исполнитель с другими командами
У исполнителя Утроитель две команды: 1) прибавь 1; 2) умножь на 3. Составьте алгоритм получения из числа 2 числа 19, содержащий не более 5 команд.
Показать решение по шагам
- 1. От конца: 19 не делится на 3 (1 + 9 = 10 не кратно трём), значит, последняя команда — 1 (18 + 1).
- 2. 18 делится на 3: 18 = 6 · 3, значит, перед этим — команда 2 из числа 6.
- 3. 6 = 2 · 3, значит, ещё раньше — команда 2 из числа 2. Это и есть начало.
- 4. Прямой ход: 2 →² 6 →² 18 →¹ 19. Ответ 221, три команды.
- 5. Общий приём для любого исполнителя: на каждом шаге обратного хода проверяй, делится ли число на множитель (тогда предыдущей была команда умножения) или нет (тогда команда прибавления). Названия исполнителей меняются, приём — нет.
Ответ: 221
Разбор примера
Файл-ответ kvadrator.py (формат задания 16): программа, проверяющая цепочку команд
Соберите программу, которая по записанному ответу выполняет команды исполнителя и печатает результат — чтобы проверить себя за секунды. Файл сохраняется как kvadrator.py.
Показать решение по шагам
- 1. Замысел: читаем начальное число и строку с номерами команд, выполняем их по очереди, печатаем итог. Если напечаталось нужное число — ответ верен.
- 2. Код целиком (Python):
x = int(input())/s = input()/for ch in s:/if ch == '1':/x = x * x/else:/x = x + 1/print(x). - 3. Трассировка на первом разборе: x = 2, s = «1212». Символ 1 → x = 4; символ 2 → x = 5; символ 1 → x = 25; символ 2 → x = 26. Печатается 26 — ответ верен.
- 4. Что менять для другого исполнителя: только строку с командами. Для Утроителя
x = x * xзаменяют наx = x + 1, аx = x + 1— наx = x * 3, и программа проверяет ответы из третьего разбора. - 5. Чем это полезно для задания 16: здесь ровно те приёмы, которые там спрашивают, — цикл по символам строки, ветвление и один вывод после цикла. Вывод внутри цикла критерий считает ошибкой.
- 6. Как сохранять: текстовый файл с расширением .py.
Ответ: kvadrator.py: цикл по строке команд, на входе 2 и «1212» печатает 26
ℹ️ Спецификация КИМ ОГЭ-2026 по информатике: «Решением каждого задания части 2 является отдельный файл, подготовленный в соответствующей программе (текстовом редакторе или электронной таблице)». Линии 13–16 — 9 баллов из 21, и проверяет их эксперт.
Задание №5 в формате экзамена
Ответить и проверить себя — после бесплатной регистрации.
Задание №5 в формате экзамена
Ответить и проверить себя — после бесплатной регистрации.
Задание №5 в формате экзамена
Ответить и проверить себя — после бесплатной регистрации.
Задание №5 в формате экзамена
Ответить и проверить себя — после бесплатной регистрации.
Задание №5 в формате экзамена
Ответить и проверить себя — после бесплатной регистрации.