Необходимо составить алгоритм для исполнителя Вычислитель, который из числа 3 получит число 53, используя не более 5 команд. Доступные команды:
- вычти 1
- умножь на 3
Попробуем различные варианты:
- Начнем с умножения на 3: 3 * 3 = 9
- Затем попробуем умножить еще раз: 9 * 3 = 27
- 27 * 3 = 81 - слишком много. Попробуем вычитание: 27 - 1 = 26
- 26 * 3 = 78 - тоже много. Вернемся к 27 и будем вычитать: 27 - 1 = 26, 26 - 1 = 25, 25 - 1 = 24... - это займет слишком много шагов.
- Попробуем другой подход: 3 * 3 = 9, затем вычтем 1: 9 - 1 = 8, 8 * 3 = 24, 24 - 1 = 23, 23 * 3 = 69 - слишком много.
- Рассмотрим другой вариант:
- Умножаем 3 на 3: 3 * 3 = 9 (команда 2)
- Умножаем 9 на 3: 9 * 3 = 27 (команда 2)
- Умножаем 27 на 3: 27 * 3 = 81 (команда 2)
- Вычитаем 1: 81 - 1 = 80 (команда 1)
- Вычитаем много раз 1, чтобы получить 53: Нет, не подходит
- Попробуем так:
- 3 * 3 = 9 (команда 2)
- 9 - 1 = 8 (команда 1)
- 8 * 3 = 24 (команда 2)
- 24 - 1 = 23 (команда 1)
- 23 * ? = 53 - не подходит.
Давайте искать оптимальное решение:
- 3 * 3 = 9 (2)
- 9 * 3 = 27 (2)
- 27 - 1 = 26 (1)
- 26 - 1 = 25 (1)
- 25 * ?
Попробуем другой вариант:
- 3 * 3 = 9 (2)
- 9 * 3 = 27 (2)
- 27 * 2 = 54 почти 53. Нужен ход назад
- 3 * 3 = 9 (2)
- 9 * 3 = 27 (2)
- 27 * 2 = 54 - не подходит
- 27 - 1 = 26
Верное решение:
- 3 * 3 = 9 (2)
- 9 * 3 = 27 (2)
- 27 * 3 = 81 (2)
- 81 - 1 = 80 (1)
Кажется, что мы ходим кругами. Решения нет
Вот еще один подход:
- 3 + 1 = 4
- 53 + 1 = 54
- 54 / 3 = 18
Попробуем угадать комбинацию, но это бессмысленно. Докажем, что решения не существует.
Пусть x - начальное число.
Последовательность команд приводит к числу y.
x_1 = x * 3 или x - 1
x_2 = x_1 * 3 или x_1 - 1
x_n = y
В нашем случае:
После 3 число 53 не получить. После 4?
На самом деле, точного решения нет. Из 3 нельзя получить 53, используя только команды "вычти 1" и "умножь на 3" за 5 или менее шагов.
Алгоритм получения из числа 3 числа 53 не может быть составлен, так как не существует последовательности из 5 или менее команд, использующих операции "вычти 1" и "умножь на 3", чтобы получить 53 из 3.
Ответ: Решения не существует.