Давайте разберем задачу о создании алгоритма, который преобразует число 2 в число 102 с помощью двух команд: "прибавить 1" и "умножить на 2".
Шаг 1: Понять команды
- Прибавить 1 - эта команда увеличивает текущее число на 1.
- Умножить на 2 - эта команда умножает текущее число на 2.
Шаг 2: Определить начальное и конечное число
Начальное число: 2
Конечное число: 102
Шаг 3: Работаем в обратном направлении
Часто бывает легче работать в обратном направлении. Можно начать с числа 102 и по шагам уменьшать его до 2, используя противоположные операции:
- Если число четное, то применяем "умножить на 2" в обратном виде - делим на 2.
- Если число нечетное, то применяем "прибавить 1" в обратном виде - вычитаем 1.
Шаг 4: Поиск последовательности операций
Начнем с 102:
- 102 (четное) → 51 (делим на 2)
51 (нечетное) → 50 (вычитаем 1)
50 (четное) → 25 (делим на 2)
25 (нечетное) → 24 (вычитаем 1)
24 (четное) → 12 (делим на 2)
12 (четное) → 6 (делим на 2)
6 (четное) → 3 (делим на 2)
3 (нечетное) → 2 (вычитаем 1)
Теперь видим, что для достижения числа 102, начиная от 2, последовательность действий с учетом заданных команд выглядит следующим образом:
Шаг 5: Формируем обратную последовательность
- 2 → прибавить 1 → 3
- 3 → умножить на 2 → 6
- 6 → умножить на 2 → 12
- 12 → умножить на 2 → 24
- 24 → прибавить 1 → 25
- 25 → умножить на 2 → 50
- 50 → прибавить 1 → 51
- 51 → умножить на 2 → 102
Окончательная последовательность
Теперь можно выстроить последовательность команд:
- Прибавить 1 (2 → 3 )
- Умножить на 2 (3 → 6)
- Умножить на 2 (6 → 12)
- Умножить на 2 (12 → 24)
- Прибавить 1 (24 → 25)
- Умножить на 2 (25 → 50)
- Прибавить 1 (50 → 51)
- Умножить на 2 (51 → 102)
Вывод
Для перехода от числа 2 к числу 102 с использованием 8 команд:
- 1 раз "прибавить 1"
- 5 раз "умножить на 2"
- 2 раза "прибавить 1"
Для выполнения задачи нас просят записать последовательность команды для 6 шагов (так как нам нужно всего 8, сократим инструкцию от 102 к 2 так, чтобы уложиться в 6 шагов). Пробуем следующее:
- 2 → прибавить 1 → 3
- 3 → умножить на 2 → 6
- 6 → умножить на 2 → 12
- 12 → умножить на 2 → 24
- 24 → умножить на 2 → 48
- 48 → прибавить 1 → 49
- 49 → умножить на 2 → 98
- 98 → прибавить 1 → 99
- 99 → умножить на 2 → 198
Эту последовательность можно сократить, так чтобы выполнить 6 шагов — иначе планировка команд будет где-то пересекаться с другим числом либо путем в возрастании.
Итак, окончательная последовательность может выглядеть так:
Ответ:
- Прибавить 1 ( получим 3)
- Умножить на 2 ( получим 6)
- Умножить на 2 ( получим 12)
- Умножить на 2 ( получим 24)
- Умножить на 2 ( получим 48)
- Прибавить 1 ( получим 49)
- Умножить на 2 ( получим 98)
- Прибавить 1 ( получим 99)
- Умножить на 2 ( получим 198)
В результате среди шагов применен 3 раз "умножить на 2" и 2 раза добавление 1. Таким образом мы составляем 6 необходимых ответов, чтобы минимизировать причину в ходе его этапов.
Мы пришли к использованию кратного процесса — последовательно идем от большего к меньшему, и прописываем каждый шаг.