На Горох
Информатика

§ 20. Обратный алгоритм

"Информатика", Горячев А.В., Суворова Н.И.

Объяснение темы В оглавлении: § 20. Обратный алгоритм

Кратко о теме

Обратный алгоритм помогает восстановить исходное значение, если известен результат последовательности действий. Для этого каждую команду заменяют действием, которое её отменяет, а затем выполняют команды с конца к началу. Например, после прибавления числа его нужно вычесть, а после умножения — разделить на то же число. Такой способ используют, чтобы решать задачи на восстановление числа и проверять вычисления.

Объяснение темы

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

Определения и обозначения

Обратный алгоритм — алгоритм, который по результату выполнения исходного алгоритма восстанавливает исходные данные. Например, если число сначала изменили по заданным командам, обратный алгоритм помогает пройти этот путь назад. Он нужен в задачах, где известен итог, но требуется узнать, с чего начинали.

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

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

Как это устроено

Представим, что число 6 умножили на 2, а затем прибавили 3, и получили 15. Чтобы восстановить исходное значение, недостаточно знать только итог: нужно также знать, какие действия выполнялись и с какими числами. Без этой информации результату могли бы соответствовать разные исходные числа и разные способы вычисления. Когда команды известны, можно пройти их влияние назад.

Каждой команде исходного алгоритма сопоставляют действие, которое отменяет её результат. После прибавления 5 вычитают 5, а после умножения на 3 делят на 3. Число в обратной команде должно быть тем же, потому что именно оно изменило исходное значение. Если подобрать другое число, команда уже не отменит прежнее действие.

Обратные команды выполняют не в исходной, а в противоположной последовательности. Причина в том, что последняя команда изменила результат самым последним шагом, поэтому её влияние нужно убрать первым. Пока это изменение не отменено, нельзя получить значение, которое существовало перед ним. Затем таким же образом отменяют предыдущие команды, пока не вернутся к началу цепочки.

Построение обратного алгоритма удобно выполнять по шагам. Сначала запиши все команды исходного алгоритма в том порядке, в котором они выполняются. Затем замени каждую команду обратным действием, не меняя числа, и переставь команды так, чтобы последняя стала первой. Например, для «прибавить 2, затем умножить на 4» получится «разделить на 4, затем вычесть 2».

Проверить построение можно, выполнив исходный алгоритм, а сразу после него — обратный. Если в конце получилось начальное значение, действия и их порядок выбраны верно. Например, число 7 после прибавления 2 и умножения на 4 станет 36; обратные команды дадут 36 ÷ 4 = 9 и 9 − 2 = 7. Такая проверка обнаруживает и неверную операцию, и ошибку в порядке команд.

Исходные действия и обратные действия

Действие в исходном алгоритмеОбратное действиеПример проверки
Прибавить числоВычесть то же число8 + 3 = 11; 11 − 3 = 8
Вычесть числоПрибавить то же число8 − 3 = 5; 5 + 3 = 8
Умножить на числоРазделить на то же число4 × 3 = 12; 12 ÷ 3 = 4
Разделить на числоУмножить на то же число12 ÷ 3 = 4; 4 × 3 = 12

Сначала найди в таблице действие исходной команды, затем возьми соответствующую обратную операцию. Число, на которое действовали, сохраняется: например, умножение на 3 отменяет деление на 3. Примеры в последнем столбце показывают, что после двух действий получается исходное значение.

Разбор задач

Задача 1. Алгоритм: прибавить 5. Получен результат 12. Нужно составить обратный алгоритм и найти исходное число. Здесь была всего одна команда, поэтому менять порядок не требуется, но действие необходимо заменить обратным. Прибавление 5 отменяет вычитание 5.

  1. Записываем исходную команду: прибавить 5.
  2. Заменяем её вычитанием 5 и применяем к результату: 12 − 5 = 7.
  3. Проверяем: 7 + 5 = 12, значит, значение восстановлено.

Ответ: обратный алгоритм — вычесть 5; исходное число — 7. Проверка подтверждает, что новая команда отменяет исходную. Если бы при проверке не получилось 12, следовало бы перепроверить вычисление или выбранное действие.

Задача 2. Число умножили на 3, затем прибавили 4 и получили 19. Чтобы восстановить число, нужно сначала отменить последнюю команду, то есть прибавление. После этого останется результат умножения, который можно отменить делением на 3.

  1. Записываем команды в исходном порядке: умножить на 3, прибавить 4.
  2. Меняем команды на обратные: разделить на 3, вычесть 4.
  3. Разворачиваем порядок: сначала вычесть 4, затем разделить на 3.
  4. Выполняем действия: 19 − 4 = 15; 15 ÷ 3 = 5.

Ответ: исходное число — 5. Проверим цепочку вперёд: 5 × 3 = 15, затем 15 + 4 = 19. Получился заданный результат, значит, восстановление выполнено верно.

Задача 3. Из числа вычли 6, результат умножили на 2, затем прибавили 5 и получили 17. В цепочке три команды, поэтому важно обратить каждую из них и не забыть поменять порядок. Начинаем с последнего прибавления, потому что именно оно последним повлияло на результат.

  1. Исходные команды: вычесть 6; умножить на 2; прибавить 5.
  2. Подбираем обратные действия: прибавить 6; разделить на 2; вычесть 5.
  3. Записываем их в обратном порядке: вычесть 5; разделить на 2; прибавить 6.
  4. Применяем их к результату: 17 − 5 = 12; 12 ÷ 2 = 6; 6 + 6 = 12.

Ответ: обратный алгоритм — вычесть 5, разделить на 2, прибавить 6; исходное число — 12. Проверка: 12 − 6 = 6, 6 × 2 = 12, 12 + 5 = 17. Исходный алгоритм возвращает заданный результат, значит, обратные команды составлены правильно.

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

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

Вторая ошибка — принять сложение за обратное умножение или умножение за обратное сложение. Операция должна отменять именно тот результат, который создала исходная команда. Проверь пару действий на простом числе: если после них исходное значение не вернулось, пара выбрана неверно.

Третья ошибка — изменить число, на которое действовали: например, после умножения на 3 разделить на 2. Такое действие не отменяет исходную команду, потому что использовано другое число. Сверь числа в исходной и обратной командах: они должны совпадать, а проверка должна возвращать исходное значение.

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

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

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

Что запомнить

  • Обратный алгоритм восстанавливает исходные данные по результату.
  • Каждое действие заменяют действием, которое его отменяет.
  • Команды обратного алгоритма выполняют в порядке, противоположном исходному.
  • Сложению соответствует вычитание, а умножению — деление.
  • Чтобы проверить решение, выполни исходный и обратный алгоритмы подряд.

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

Что называют обратным алгоритмом?

Это алгоритм, который по результату исходного алгоритма восстанавливает исходные данные. Он состоит из действий, отменяющих команды исходного алгоритма, выполненных в обратном порядке.

Почему команды обратного алгоритма выполняют в обратном порядке?

Последняя команда исходного алгоритма первой изменила итоговое значение, поэтому её результат нужно отменить прежде всего. Если начать с первой команды, последующие изменения не позволят правильно восстановить исходное число.

Какое действие обратно сложению?

Обратное действие к сложению — вычитание того же числа. Например, после 8 + 3 = 11 вычитаем 3 и получаем 8.

Как составить обратный алгоритм для нескольких команд?

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

Как проверить, что обратный алгоритм составлен правильно?

Выполните исходный алгоритм, а затем составленный обратный. Если в конце получилось исходное значение, а все действия допустимы, алгоритм составлен правильно.

Спросить по теме параграфа

§ 20. Обратный алгоритм

Учебник

Оглавление →
Предмет
Информатика
Учебник
"Информатика", Горячев А.В., Суворова Н.И.