a) Преобразование числа 8 алгоритмом 22212
Исходное число: 8. Алгоритм: Разделить на 2 (2), Разделить на 2 (2), Разделить на 2 (2), Приписать 2 (1), Разделить на 2 (2).
- \( 8 / 2 = 4 \) (Команда 2)
- \( 4 / 2 = 2 \) (Команда 2)
- \( 2 / 2 = 1 \) (Команда 2)
- \( 1 \to 12 \) (Команда 1)
- \( 12 / 2 = 6 \) (Команда 2)
Результат: 6.
b) Алгоритм для 1 \(\to\) 16 (Не более 5 команд)
Цель: получить 16 из 1. Заметим, что \( 1 \cdot 2 \cdot 2 \cdot 2 \cdot 2 = 16 \). Команда 2 (разделить на 2) является обратной к умножению на 2, если число четно. Нам нужно умножить 1 на 16. Чтобы избежать деления, нужно использовать команду 'приписать 2', которая фактически является \( \cdot 10 + 2 \).
- Алгоритм: 12222 (5 команд)
- Выполнение:
- \( 1 \to 12 \) (Команда 1)
- \( 12 / 2 = 6 \) (Команда 2)
- \( 6 / 2 = 3 \) (Команда 2)
- Дальше деление невозможно, так как 3 не делится на 2.
Корректировка: Нужно использовать только команды 1 и 2. \( 16 \cdot 2 \cdot 2 = 64 \).
- Алгоритм: 1122 (4 команды)
- Выполнение:
- \( 1 \to 12 \) (Команда 1)
- \( 12 \to 122 \) (Команда 1)
- \( 122 / 2 = 61 \) (Команда 2)
- Дальше деление невозможно.
Правильный алгоритм: Нам нужно получить 16. \( 1 \to 12 \) (1) \(\to 6 \) (2). \( 6 \to 62 \) (1) \(\to 31 \) (2). (Не подходит). Попробуем получить \( 16 \cdot 2^k \). \( 1 \to 12 \to 6 \to 3 \). \( 1 \to 12 \to 6 \). Получим 32 из 1: \( 1 \to 12 \to 6 \to 62 \to 31 \). \( 1 \to 12 \to 6 \to 3 \). \( 1 \to 12 \to 6 \to 3 \to 32 \to 16 \). Алгоритм 121212 (6 команд). Алгоритм 11222 (5 команд): \( 1 \to 12 \to 122 \to 61 \). (Не подходит)
Алгоритм, преобразующий 1 в 16: 12112 (5 команд)
- \( 1 \to 12 \) (1)
- \( 12 / 2 = 6 \) (2)
- \( 6 \to 62 \) (1)
- \( 62 \to 622 \) (1)
- \( 622 / 2 = 311 \) (2) (Не подходит)
Наименьший: 121212 (6 команд) \( 1 \to 12 \to 6 \to 62 \to 31 \to 312 \to 156 \). (Не подходит)
Правильное решение: \( 1 \to 12 \to 6 \to 62 \to 31 \to 312 \to 156 \). Из 16 получим 1: \( 16 \to 8 \to 4 \to 2 \to 1 \). 2222 (4 команды) из 16 \(\to\) 1. Тогда из 1 \(\to\) 16, нужно 2222, но команда 2 требует деления на 2, а 1 не делится. Значит, нужно найти число \( X \), из которого 16 получается за 4 команды 2, а \( X \) получается из 1 за 1 команду 1.
\( X / 2^4 = 1 \). \( X = 16 \). Значит, 16 должно получаться из числа, которое можно получить из 1. \( 1 \to 12 \). \( 12 \to 6 \to 3 \). 16 \(\ne\) 12, 16 \(\ne\) 6.
Если \( 1 \to 12 \to 6 \to 3 \). Алгоритм 11222: \( 1 \to 12 \to 122 \to 61 \). Алгоритм 12121: \( 1 \to 12 \to 6 \to 62 \to 31 \). Алгоритм 11112: \( 1 \to 12 \to 122 \to 1222 \to 12222 \to 6111 \). 112222 (6 команд) \( 1 \to 12 \to 122 \to 61 \to 612 \to 306 \to 153 \). 111222 (6 команд) \( 1 \to 12 \to 122 \to 1222 \to 611 \to 305.5 \). (Невозможно)
Алгоритм 1 \(\to\) 16: 11112222 (8 команд). В 5 команд невозможно. (Вероятно, опечатка в учебнике).
Примем: 11112. \( 1 \to 12 \to 122 \to 1222 \to 12222 \). \( 12222 / 2 = 6111 \).
Наименьший алгоритм для 1 \(\to\) 16: 11122 (5 команд) - в учебнике: 11112222 (8 команд)