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

27. A теперь наоборот!

"Информатика (в 2 частях)", Павлов Д.И., Полежаева О.А., Коробкова Л.Н. и др./ Под ред. Горячева А.В.

Объяснение темы В оглавлении: 27. A теперь наоборот!

Кратко о теме

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

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

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

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

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

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

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

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

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

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

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

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

Например, число сначала увеличили на 7, затем результат умножили на 3 и получили 36. Чтобы рассуждать от конца, сперва делят 36 на 3 и получают 12 — значение после прибавления. Затем из 12 вычитают 7 и получают 5. Так ход вычислений ведёт назад по тем же этапам, но в противоположном порядке.

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

Прямые действия и способы их обратить

Прямое действиеОбратное действиеПример восстановления
Прибавить числоВычесть то же числоЕсли прибавили 7, вычесть 7
Вычесть числоПрибавить то же числоЕсли вычли 5, прибавить 5
Умножить на числоРазделить на то же ненулевое числоЕсли умножили на 4, разделить на 4
Разделить на числоУмножить на то же числоЕсли разделили на 3, умножить на 3
Поменять порядок шаговВыполнить обратные шаги в обратной последовательностиСначала отменить последнюю операцию

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

Разбор задач

Задача 1. К числу прибавили 7, затем умножили результат на 3 и получили 36. Найдём исходное число. Известен конец вычислений, поэтому начинаем с него и отменяем операции в обратной последовательности.

  1. Последним было умножение на 3. Отменяем его делением: 36 ÷ 3 = 12.
  2. Перед умножением к числу прибавили 7. Отменяем прибавление: 12 − 7 = 5.
  3. Проверяем прямой ход: (5 + 7) × 3 = 12 × 3 = 36.

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

Задача 2. Число уменьшили на 5, результат умножили на 4, затем прибавили 6. Получилось 34. Чтобы найти начало, мысленно проходим от 34 к предыдущим промежуточным результатам и не переставляем операции произвольно.

  1. Последним прибавили 6, поэтому вычитаем 6: 34 − 6 = 28.
  2. До этого результат умножили на 4, поэтому делим на 4: 28 ÷ 4 = 7.
  3. Число уменьшили на 5, значит, прибавляем 5: 7 + 5 = 12.
  4. Проверяем прямые действия: 12 − 5 = 7, 7 × 4 = 28, 28 + 6 = 34.

Ответ: исходное число — 12. Прямая проверка приводит к 34, поэтому восстановление подтверждено.

Задача 3. Алгоритм заменяет каждую цифру её квадратом. По результату 149 нужно восстановить исходное трёхзначное число, если его цифры неотрицательны. Сначала рассматриваем каждую цифру результата отдельно: алгоритм не смешивал их, а только преобразовал каждую из них.

  1. Цифра 1 получилась как квадрат цифры 1: 1² = 1.
  2. Цифра 4 получилась как квадрат цифры 2: 2² = 4.
  3. Цифра 9 получилась как квадрат цифры 3: 3² = 9.
  4. Условие о неотрицательных цифрах исключает отрицательные корни. Проверяем: квадраты цифр числа 123 дают 1, 4 и 9.

Ответ: исходное число — 123. Здесь восстановление однозначно при заданном условии: среди неотрицательных цифр каждому квадрату соответствует только одна цифра. Без ограничения знака квадрат, например, не различает числа 2 и −2.

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

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

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

Не учитывать деление на ноль. Умножение на ноль превращает любое число в ноль, а делить этот результат на ноль нельзя. Поэтому обычного обратного шага здесь нет, и исходное число восстановить невозможно. Перед делением посмотрите, не равен ли делитель нулю; если равен, проверьте, не потерялась ли информация.

Считать, что любой алгоритм обратим однозначно. Так думают, когда забывают, что преобразование может дать одинаковый итог для разных исходных значений. Например, квадраты 2 и −2 равны. Чтобы проверить однозначность, спросите себя, могли ли разные исходники привести к тому же результату; если да, нужны дополнительные условия.

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

Для обращения вычислений нужны знания арифметических действий и умение проверять результат. В алгоритмах и при работе с исполнителями обратный порядок помогает восстановить начальное состояние после серии команд. Тот же приём полезен в текстовых задачах, когда удобнее идти от известного итога к началу. Анализ преобразований данных позволяет заметить, сохраняет ли алгоритм сведения, необходимые для восстановления.

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

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

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

Почему обратные действия нужно выполнять с конца?

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

Как найти число, если известен только результат нескольких операций?

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

Как проверить, что найденное исходное число верно?

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

Можно ли обратить любой алгоритм?

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

Почему некоторые результаты не позволяют восстановить исходные данные однозначно?

Некоторые действия объединяют разные исходные значения в один результат. Например, возведение числа в квадрат даёт одинаковый итог для чисел 2 и −2, поэтому одного результата недостаточно, чтобы выбрать исходное число.

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

27. A теперь наоборот!

Учебник

Оглавление →
Предмет
Информатика
Учебник
"Информатика (в 2 частях)", Павлов Д.И., Полежаева О.А., Коробкова Л.Н. и др./ Под ред. Горячева А.В.