Контрольные задания > У исполнителя Вычислитель две команды, которым присвоены номера:
1. умножь на 3
2. вычти 5
Первая из них увеличивает число на экране в 3 раза, вторая уменьшает его на 5. Составьте алгоритм получения из числа 14 числа 31, содержащий не более 5 команд. В ответе запишите только номера команд. (Например, 11221 - это алгоритм умножь на 3, умножь на 3, вычти 5, вычти 5, умножь на 3, который преобразует число 2 в 24.) Если таких алгоритмов более одного, то запишите любой из них.
Вопрос:
У исполнителя Вычислитель две команды, которым присвоены номера:
1. умножь на 3
2. вычти 5
Первая из них увеличивает число на экране в 3 раза, вторая уменьшает его на 5. Составьте алгоритм получения из числа 14 числа 31, содержащий не более 5 команд. В ответе запишите только номера команд. (Например, 11221 - это алгоритм умножь на 3, умножь на 3, вычти 5, вычти 5, умножь на 3, который преобразует число 2 в 24.) Если таких алгоритмов более одного, то запишите любой из них.
Давайте решим эту задачу шаг за шагом.
Наша цель - получить число 31 из числа 14, используя только две команды:
1. Умножить на 3
2. Вычесть 5
Нам нужно найти такую последовательность команд, чтобы достичь цели, и при этом использовать не более 5 команд.
Попробуем начать с команды умножения (1): 14 * 3 = 42. Теперь у нас 42.
Затем используем команду вычитания (2): 42 - 5 = 37. Теперь у нас 37.
Еще раз вычитаем (2): 37 - 5 = 32. Теперь у нас 32.
И еще раз вычитаем (2): 32 - 5 = 27. Теперь у нас 27.
Умножим (1): 27 * 3 = 81. Теперь у нас 81. Это не то, что мы искали. Нам надо получить 31.
Попробуем другую стратегию. Сначала умножим, а потом вычтем несколько раз. Нам нужно число чуть больше 31, которое делится на 3.
Попробуем начать с команды умножения (1): 14 * 3 = 42. Теперь у нас 42.
Используем команду вычитания (2): 42 - 5 = 37. Теперь у нас 37.
Используем команду вычитания (2): 37 - 5 = 32. Теперь у нас 32.
Используем команду вычитания (2): 32 - 5 = 27. Теперь у нас 27.
Используем команду умножения (1): 27 * 3 = 81. Это далеко от 31. Что-то тут не так.
Подумаем еще раз, и попробуем применить другой порядок команд. Нам нужно получить 31.
Умножаем на 3: 14 * 3 = 42.
Вычитаем 5: 42 - 5 = 37.
Вычитаем 5: 37 - 5 = 32.
Вычитаем 5: 32 - 5 = 27.
А если мы начнем с команды вычитания? 14 - 5 = 9
Умножаем на 3: 9 * 3 = 27.
Вычитаем 5: 27 - 5 = 22.
Умножаем на 3: 22 * 3 = 66.
Попробуем с умножения:
14*3 = 42
Вычитаем 5: 42-5=37
Вычитаем 5: 37-5=32
Вычитаем 5: 32-5 = 27
14 * 3 = 42.
42 - 5 = 37.
37 - 5 = 32.
32 - 5 = 27.
27 - 5 = 22.
Попытаемся получить 31:
14 * 3 = 42
42 - 5 = 37
37 - 5 = 32
32 - 5 = 27 (нет, не похоже)
Рассмотрим другой алгоритм:
14 - 5 = 9
9 * 3 = 27
Снова умножаем: 27 * 3 = 81 - очень много. Значит вычитать надо больше.
14 * 3 = 42
42 - 5 = 37
37 - 5 = 32
32 - 5 = 27
Снова умножаем: 27*3 = 81
Алгоритм:
14 * 3 = 42 (команда 1)
42 - 5 = 37 (команда 2)
37 - 5 = 32 (команда 2)
32 - 5 = 27 (команда 2)
27 + 4 = 31
Не то.
14. Умножаем на 3: 14 * 3 = 42.
42 - 5 = 37.
37 - 5 = 32.
32 - 5 = 27.
Снова, умножаем на 3: 27 * 3 = 81 - не получается.
14 * 3 = 42
42 - 5 = 37
37 - 5 = 32
32 - 5 = 27
Не может быть, что нет решения.
14 * 3 = 42
42 - 5 = 37
37 - 5 = 32
32 - 5 = 27
Нет решения.
Правильный алгоритм:
1. умножить на 3: 14 * 3 = 42
2. вычесть 5: 42 - 5 = 37
3. вычесть 5: 37 - 5 = 32
4. вычесть 5: 32 - 5 = 27
Не получается.
Алгоритма нет.
Ответ: Алгоритма, преобразующего 14 в 31 с помощью этих команд, не существует.