Ответ:
Цель: Преобразовать 5 в 30.
Команды:
- 1. Вычти 1
- 2. Умножь на 2
Поиск алгоритма:
Начнем с числа 5 и будем применять команды, стараясь приблизиться к 30:
- 5 -> (умножить на 2) -> 10 (команда 2)
- 10 -> (умножить на 2) -> 20 (команда 2)
- 20 -> (вычесть 1) -> 19 (команда 1)
- 19 -> (умножить на 2) -> 38 (команда 2) - это больше 30, нужно пробовать другие комбинации.
Попробуем другую последовательность:
- 5 -> (вычесть 1) -> 4 (команда 1)
- 4 -> (умножить на 2) -> 8 (команда 2)
- 8 -> (умножить на 2) -> 16 (команда 2)
- 16 -> (умножить на 2) -> 32 (команда 2) - тоже больше 30.
Попробуем такую последовательность:
- 5 -> (умножить на 2) -> 10 (команда 2)
- 10 -> (вычесть 1) -> 9 (команда 1)
- 9 -> (умножить на 2) -> 18 (команда 2)
- 18 -> (вычесть 1) -> 17 (команда 1)
- 17 -> (умножить на 2) -> 34 (команда 2) - тоже больше 30.
Еще одна попытка:
- 5 -> (умножить на 2) -> 10 (команда 2)
- 10 -> (умножить на 2) -> 20 (команда 2)
- 20 -> (умножить на 2) -> 40 (команда 2) - слишком много.
Вернемся к первой попытке и изменим ее:
- 5 -> (умножить на 2) -> 10 (команда 2)
- 10 -> (умножить на 2) -> 20 (команда 2)
- 20 -> (вычесть 1) -> 19 (команда 1)
- 19 -> (вычесть 1) -> 18 (команда 1)
- 18 -> (умножить на 2) -> 36 (команда 2) - не то.
Давайте попробуем угадать, что число 30 получается умножением на 2. Если последнее действие - умножение на 2, то перед ним должно быть число 15. Как получить 15 из 5 за 4 команды?
Алгоритм 1:
- 5 -> (умножить на 2) -> 10 (команда 2)
- 10 -> (умножить на 2) -> 20 (команда 2)
- 20 -> (вычесть 1) -> 19 (команда 1)
- 19 -> (вычесть 1) -> 18 (команда 1)
- 18 -> (умножить на 2) -> 36 - не 30.
Попробуем получить 30, используя команду "вычти 1" в конце. Перед ней должно быть 31. Как получить 31 из 5 за 4 команды?
Алгоритм 2:
- 5 -> (умножить на 2) -> 10 (команда 2)
- 10 -> (умножить на 2) -> 20 (команда 2)
- 20 -> (умножить на 2) -> 40 (команда 2) - не 31.
Попробуем так:
- 5 -> (умножить на 2) -> 10 (команда 2)
- 10 -> (вычесть 1) -> 9 (команда 1)
- 9 -> (умножить на 2) -> 18 (команда 2)
- 18 -> (умножить на 2) -> 36 - не 30.
Давайте попробуем получить 30. Возможные варианты, если последнее действие - умножить на 2:
1. \( 5 \xrightarrow{2} 10 \xrightarrow{1} 9 \xrightarrow{2} 18 \xrightarrow{1} 17 \rightarrow 34 \)
2. \( 5 \xrightarrow{2} 10 \xrightarrow{2} 20 \xrightarrow{1} 19 \xrightarrow{2} 38 \)
3. \( 5 \xrightarrow{1} 4 \xrightarrow{2} 8 \xrightarrow{2} 16 \xrightarrow{2} 32 \)
4. \( 5 \xrightarrow{2} 10 \xrightarrow{1} 9 \xrightarrow{1} 8 \xrightarrow{2} 16 \rightarrow 32 \)
5. \( 5 \xrightarrow{2} 10 \xrightarrow{2} 20 \xrightarrow{2} 40 \)
Если последнее действие - вычесть 1, то предыдущее число должно быть 31.
Рассмотрим вариант, когда мы пытаемся получить 30. Возможно, мы должны использовать команду «вычти 1» не только для уменьшения, но и для того, чтобы получить нужное число для следующего умножения.
Попробуем так: 5 -> 10 (2) -> 9 (1) -> 18 (2) -> 36 (2) - не то.
Попробуем получить 30:
\( 5 \xrightarrow{2} 10 \xrightarrow{2} 20 \)
Теперь нужно получить 10 из 20, но у нас есть только "вычти 1" и "умножь на 2".
Давайте попробуем такой алгоритм:
\( 5 \xrightarrow{2} 10 \)
\( 10 \xrightarrow{1} 9 \)
\( 9 \xrightarrow{2} 18 \)
\( 18 \xrightarrow{2} 36 \)
Это не 30.
Попробуем получить 30. Нам нужно получить число, которое после применения команд даст 30. Если последняя команда "умножь на 2", то предыдущее число должно быть 15. Как получить 15 из 5 за 4 команды?
\( 5 \xrightarrow{1} 4 \xrightarrow{2} 8 \xrightarrow{1} 7 \xrightarrow{2} 14 \)
\( 5 \xrightarrow{2} 10 \xrightarrow{1} 9 \xrightarrow{2} 18 \)
\( 5 \xrightarrow{1} 4 \xrightarrow{1} 3 \xrightarrow{2} 6 \xrightarrow{2} 12 \)
\( 5 \xrightarrow{2} 10 \xrightarrow{2} 20 \xrightarrow{1} 19 \)
Давайте попробуем такой вариант:
\( 5 \rightarrow 10 \rightarrow 20 \rightarrow 40 \)
\( 5 \rightarrow 4 \rightarrow 8 \rightarrow 16 \rightarrow 32 \)
\( 5 \rightarrow 10 \rightarrow 9 \rightarrow 18 \rightarrow 36 \)
\( 5 \rightarrow 10 \rightarrow 20 \rightarrow 19 \rightarrow 38 \)
Правильный алгоритм:
- 5 -> (умножить на 2) -> 10 (команда 2)
- 10 -> (умножить на 2) -> 20 (команда 2)
- 20 -> (умножить на 2) -> 40 (команда 2)
- 40 -> (вычесть 1) -> 39 (команда 1)
- 39 -> (вычесть 1) -> 38 (команда 1)
Это не 30.
Попробуем наоборот:
\( 5 \xrightarrow{2} 10 \xrightarrow{2} 20 \xrightarrow{1} 19 \rightarrow 38 \)
\( 5 \xrightarrow{2} 10 \xrightarrow{1} 9 \xrightarrow{2} 18 \)
\( 5 \rightarrow 10 \rightarrow 9 \rightarrow 18 \rightarrow 36 \)
\( 5 \rightarrow 10 \rightarrow 20 \rightarrow 19 \rightarrow 38 \)
\( 5 \rightarrow 4 \rightarrow 8 \rightarrow 16 \rightarrow 32 \)
\( 5 \rightarrow 10 \rightarrow 20 \rightarrow 21 \rightarrow 42 \)
\( 5 \xrightarrow{2} 10 \xrightarrow{1} 9 \xrightarrow{1} 8 \xrightarrow{2} 16 \rightarrow 32 \)
\( 5 \xrightarrow{1} 4 \xrightarrow{2} 8 \xrightarrow{2} 16 \xrightarrow{1} 15 \rightarrow 30 \)
Алгоритм: 12212
1. 5 - 1 = 4 (команда 1)
2. 4 * 2 = 8 (команда 2)
3. 8 * 2 = 16 (команда 2)
4. 16 - 1 = 15 (команда 1)
5. 15 * 2 = 30 (команда 2)
Количество команд: 5.
Алгоритм: 12212
