Задание 5 ОГЭ: получение большего числа из меньшего и обратно у формального исполнителя
Подтемы
Что проверяет задание
Задание 5 проверяет умение работать с простым линейным алгоритмом для формального исполнителя — программой без циклов, без ветвлений и без повторных обращений к одной и той же команде «сразу пачкой». Исполнитель умеет выполнять всего две операции: увеличивать число на экране на фиксированную величину и умножать его на некоторое число . Программа — это просто запись подряд номеров команд, например 11211, и каждая цифра означает одно применение соответствующей команды строго по порядку слева направо.
В большинстве вариантов задания требуется не «прогнать» программу вперёд (это было бы слишком просто), а решить обратную задачу: известно, с какого числа начали и во что оно превратилось после выполнения программы, а неизвестен параметр одной из команд. Нужно составить уравнение и найти это . Отсюда и две связанные подтемы — «получение большего числа из меньшего» (когда обе команды увеличивают число, и требуется подобрать множитель, чтобы дойти до нужного большого значения) и «получение меньшего числа из большего» (та же логика, но встречается и в задачах с делением или уменьшением — общий принцип решения одинаков: линейная функция от , приравненная к известному результату).
Как выглядит формулировка и сколько баллов
Типовая формулировка звучит так: у исполнителя (Альфа, Бета, Гамма и т. п.) есть две команды с номерами 1 и 2. Команда 1 — «прибавь » (число конкретное: 1, 2, 3 и так далее), команда 2 — «умножь на », где — неизвестное натуральное число, . Программа записана как последовательность цифр, например 12111 или 11211. Дано, что при выполнении этой программы конкретное число (например, 6 или 7) переходит в другое конкретное число (например, 82 или 51). Требуется найти значение .
Задание относится к базовому уровню сложности, ответом служит одно число, вводимое в поле без пробелов и лишних символов. За верное решение даётся 1 балл. Никаких промежуточных записей проверять не требуется — оценивается только итоговое число, поэтому важно не допустить арифметической ошибки при вычислении.
Что нужно знать
- Линейный алгоритм — последовательность команд, которые выполняются одна за другой строго в порядке их записи, без пропусков, повторов и условных переходов.
- Команда «прибавь » переводит число в число : .
- Команда «умножь на » переводит число в число : .
- Программа записывается как строка цифр-номеров команд; например, запись 11211 означает выполнение команд в порядке: 1, 1, 2, 1, 1.
- Применение программы к числу — это композиция функций: результат каждого шага становится входным значением для следующего шага.
- По условию задачи — натуральное число и (единица не подходит, так как умножение на 1 не меняет число, что обычно противоречит смыслу задачи).
- После разбора программы получается уравнение вида , где и — числа, найденные из последовательности команд, а — известный конечный результат. Уравнение решается стандартно: .
- Обратная операция для «прибавь » — «вычти » (), для «умножь на » — «раздели на » (); эти обратные операции полезны при движении от конца программы к началу.
Методы решения
Метод 1. Прямой прогон программы с переменной . Берём начальное число, применяем команды по порядку, при этом там, где встречается умножение, просто пишем множитель рядом, не вычисляя его. В итоге получаем выражение вида . Мини-пример: программа 12 (команда 1 — «+2», команда 2 — «умножь на »), начальное число 5. Шаг 1: . Шаг 2: . Если известно, что итог равен 21, получаем уравнение , откуда .
Метод 2. Таблица промежуточных значений. Удобен, если команд много и легко запутаться. Строим таблицу: номер шага — команда — выражение. Каждая новая строка получается из предыдущей применением очередной команды. Такой способ снижает риск пропустить шаг или перепутать порядок операций.
Метод 3. Обратный ход (от результата к началу). Если неизвестно не , а начальное число, движемся от конечного результата назад, применяя обратные операции в обратном порядке команд. Мини-пример: программа 21 (команда 2 — «умножь на 3», команда 1 — «+4»), результат равен 19. Идём назад: последней была команда 1, значит перед ней было ; перед этим была команда 2 (умножение на 3), значит до неё было . Значит, начальное число — 5.
Метод 4. Составление и решение линейного уравнения. После того как получено выражение вида , просто решаем уравнение относительно : . Обязательно проверяем, что получившееся значение — натуральное число и не меньше 2, иначе где-то допущена ошибка.
Метод 5. Проверка подбором (контрольный метод). После нахождения полезно подставить найденное значение в программу и прогнать её заново от начала до конца, чтобы убедиться, что действительно получается заданное конечное число. Это не основной способ решения, но обязательный шаг самоконтроля.
Алгоритм решения по шагам
- Выписать, что означает команда 1 и что означает команда 2 (какое число прибавляется, что множитель — неизвестное ).
- Прочитать программу как последовательность цифр и определить порядок выполнения команд слева направо.
- Взять исходное число и последовательно применять к нему команды, при умножении оставляя буквенный множитель , не пытаясь его сразу вычислить.
- После прогона всей программы получить итоговое выражение в виде (число показывает, во сколько раз множитель участвует в итоговом коэффициенте, — накопленное слагаемое).
- Составить уравнение: полученное выражение равно заданному конечному числу.
- Решить уравнение относительно .
- Проверить, что — натуральное число и ; если условие не выполняется, пересчитать шаги 3–4, скорее всего, ошибка в порядке команд или в арифметике.
- Сделать проверку: подставить найденное в программу и убедиться, что результат совпадает с данным в условии числом.
Разбор примеров
Пример 1. У исполнителя Альфа команда 1 — «прибавь 1», команда 2 — «умножь на » (, натуральное). Программа 11211 переводит число 6 в число 82. Найти .
Разбираем программу по цифрам: 1, 1, 2, 1, 1 — пять шагов.
Шаг 1 (команда 1, +1): . Шаг 2 (команда 1, +1): . Шаг 3 (команда 2, умножение на ): . Шаг 4 (команда 1, +1): . Шаг 5 (команда 1, +1): .
Итоговое выражение: . По условию оно равно 82: Решаем: , значит .
Проверка условия: — натуральное число, — условие выполняется. Проверим прогоном: — всё совпадает. Ответ: .
Пример 2. У исполнителя Бета команда 1 — «прибавь 2», команда 2 — «умножь на ». Программа 12111 переводит число 7 в число 51. Найти .
Порядок команд: 1, 2, 1, 1, 1 — пять шагов.
Шаг 1 (команда 1, +2): . Шаг 2 (команда 2, умножение на ): . Шаг 3 (команда 1, +2): . Шаг 4 (команда 1, +2): . Шаг 5 (команда 1, +2): .
Итоговое выражение: . По условию равно 51: Решаем: , значит .
Проверка: — натуральное число, , условие выполнено. Прогон: — совпадает. Ответ: .
Пример 3. У исполнителя Гамма команда 1 — «прибавь 3», команда 2 — «умножь на ». Программа 11211 переводит число 1 в число 97. Найти .
Порядок команд: 1, 1, 2, 1, 1 — пять шагов.
Шаг 1 (команда 1, +3): . Шаг 2 (команда 1, +3): . Шаг 3 (команда 2, умножение на ): . Шаг 4 (команда 1, +3): . Шаг 5 (команда 1, +3): .
Итоговое выражение: . По условию равно 97: Решаем: , значит .
Проверка: — натуральное число, , условие выполнено. Прогон: — совпадает. Ответ: .
Во всех трёх примерах видно общую закономерность: сначала последовательно выполняются команды сложения, накапливая некоторое число до момента умножения, затем происходит умножение на , а затем снова прибавляются известные слагаемые. Итоговое выражение всегда линейно относительно , поэтому уравнение решается элементарно — важно только аккуратно посчитать коэффициент при (то есть значение, накопленное перед умножением) и свободное слагаемое (то, что прибавилось после умножения).
Типичные ошибки и ловушки
- Перепутан порядок выполнения команд. Программа читается строго слева направо, но иногда её по ошибке читают справа налево или переставляют шаги местами — это сразу даёт неверный коэффициент при .
- Умножение применяется не ко всему накопленному числу. Частая ошибка — умножать на только исходное число, забывая, что до умножения уже были выполнены другие команды и число успело измениться.
- Ошибка при раскрытии умножения суммы. Если умножение стоит не первым шагом, а после нескольких прибавлений, важно умножить на именно то число, которое накопилось к этому моменту, а не исходное.
- Неверный подсчёт числа повторений команды после умножения. После того как в выражении появился , к нему по инерции продолжают прибавлять слагаемые — легко забыть или, наоборот, добавить лишний шаг.
- Пропуск проверки условия и натуральности. Если в результате решения уравнения получилось дробное число или , значит где-то допущена ошибка в разборе программы — нужно пересчитать шаги, а не подгонять ответ.
- Путаница между командой 1 и командой 2. В разных вариантах номера команд могут отличаться по смыслу (иногда команда 1 — умножение, а команда 2 — сложение), поэтому важно каждый раз внимательно читать условие, а не действовать по шаблону из предыдущей задачи.
- Ошибки в самой арифметике при переносе слагаемых через знак равенства в конечном уравнении — стоит выполнять вычисления по шагам, не срезая их в голове.
Как готовиться
Лучший способ подготовки — самому расписывать программу по шагам в виде таблицы, отдельно фиксируя, какая команда выполняется и что происходит с выражением. Стоит решить подряд десять-пятнадцать задач такого типа с разными программами (разное число повторений команд, разное расположение умножения — в начале, середине или конце последовательности), чтобы натренировать быстрый и безошибочный разбор.
Полезно также решать задачи в обратную сторону: по данной программе и неизвестному начальному числу восстанавливать его, применяя обратные операции от конца к началу. Это укрепляет понимание того, что каждая команда — это функция, а программа — их последовательная композиция, и помогает быстрее ориентироваться, если в задании поменяют, что именно неизвестно — множитель, начальное число или слагаемое в команде.
При тренировке обязательно проверяйте себя прогоном программы с найденным значением от начала до конца: если конечное число совпало с тем, что дано в условии, ответ верный. Такая привычка экономит баллы на реальном экзамене, где ошибка на одном шаге легко разрушает весь ответ, а времени на пересчёт может не хватить.
Частые вопросы
Может ли b быть равным 1?
Нет, по условию задания b — натуральное число, и почти всегда указано ограничение b ≥ 2, потому что умножение на 1 не меняет число и не имеет смысла как отдельная команда.
Что делать, если при решении уравнения b получилось дробным?
Это сигнал ошибки. Нужно вернуться к разбору программы и проверить, правильно ли посчитан порядок команд, коэффициент перед b и свободное слагаемое после умножения.
Как быстро понять, сколько раз в программе встречается каждая команда?
Достаточно посчитать количество цифр 1 и цифр 2 в записи программы, но важно не просто посчитать количество, а применять их строго в том порядке, в котором они записаны.
Нужно ли всегда получать выражение вида k·b + m?
Да, если в программе только одно умножение на b, итоговое выражение всегда линейно относительно b. Если умножений несколько, выражение будет содержать более высокую степень b, но принцип решения такой же — составить уравнение и решить его.
Как проверить правильность найденного значения b?
Нужно подставить найденное b в программу и последовательно прогнать её от начального числа, шаг за шагом применяя команды, и убедиться, что итоговое число совпадает с тем, что указано в условии.
Что если в программе умножение стоит первым шагом?
Тогда сразу на первом шаге начальное число умножается на b, а все последующие слагаемые прибавляются уже к этому произведению — порядок решения остаётся тем же, просто коэффициент k совпадает с исходным числом.
Отличается ли решение для получения меньшего числа из большего?
Принцип составления уравнения одинаковый: линейная зависимость итогового числа от b. Разница лишь в том, что при движении к меньшему числу чаще используют обратные операции (вычитание, деление) при разборе программы от конца к началу.