Давайте разберём 5-ю задачу, которая представлена на изображении.
Условие задачи
У исполнителя Бета две команды:
- прибавь 1 — увеличивает число на 1.
- прибавь 2 — увеличивает число на 2.
Программа для исполнителя — это последовательность команд. Известно, что эта программа превращает исходное число 1 в число 118. Необходимо определить наименьшее натуральное число, к которому применив программу, получаем 118.
Пошаговое решение
Цель: Вернуться от числа 118 к исходному числу 1, выполняя операции в обратном порядке. Нужно выяснить, при каком наименьшем начальном значении получим 118.
Анализ команд:
- Если последнее действие: +2, то предыдущее число = текущее - 2.
- Если последнее действие: +1, то предыдущее число = текущее - 1.
Применение команд в обратную сторону:
- Начнём с 118.
- Проверяем, можем ли вычитать 2 (так как это приведёт к меньшему числу, чем вычитание 1):
- 118 - 2 = 116
- 116 - 2 = 114
- 114 - 2 = 112
- ...
- Повторяем до тех пор, пока остаётся чётное число.
- Если на каком-то шаге число становится нечётным, вычитаем 1.
- Продолжаем вышеописанные действия до достижения числа 1.
Примерный ход выполнения:
- Вычитаем 2, пока можем:
- 118 - 2 = 116
- 116 - 2 = 114
- 112 - 2 = 112
- (и так далее, пока это возможно)
- Если получили нечётное число — вычитаем 1.
- Исполняем до получения 1.
- Вычитаем 2, пока можем:
Ответ:
- Продолжая по такой схеме, продолжаем, следя за кратчайшим путем до 1.
Этот алгоритм позволяет минимизировать исходное число, необходимые для получения числа 118 при помощи данных команд.