Задание №5 — Алгоритмы и программирование
У исполнителя Квадратор две команды, которым присвоены номера:
1. возведи в квадрат
2. вычти 3
Первая из них возводит число на экране во вторую степень, вторая вычитает из числа 3.
Составьте алгоритм получения из числа 2 числа 46, содержащий не более 5 команд. В ответе запишите только номера команд.
(Например, 2221 это алгоритм
вычти 3
вычти 3
вычти 3
возведи в квадрат
который преобразует число 4 в 25.)
Если таких алгоритмов более одного, то запишите любой из них.
Правильный ответ
22212
Пояснение
Решение.
Нам необходимо составить алгоритм для исполнителя Квадратор, который превращает число в число за ограниченное количество шагов (не более 5 команд). У нас есть две команды:
1. Возведи в квадрат ();
2. Вычти 3 ().
Для решения таких задач удобнее всего двигаться «с конца» — от итогового числа к исходному числу . При движении в обратном направлении команды меняются на противоположные:
1. Извлеки квадратный корень ();
2. Прибавь 3 ().
Шаг 1. Посмотрим на число . Из него нельзя извлечь целый квадратный корень, поэтому применяем обратную команду №2 (прибавь 3):
. (Это была бы команда 2, если смотреть от начала).
Шаг 2. Из числа можно извлечь квадратный корень:
. (Это команда 1, если смотреть от начала).
Шаг 3. Из числа нельзя извлечь целый корень. Применяем обратную команду №2 (прибавь 3):
. (Команда 2).
Шаг 4. Из числа нельзя извлечь целый корень. Применяем обратную команду №2 (прибавь 3):
. (Команда 2).
Заметим: если мы продолжим прибавлять 3, мы будем отдаляться от начальной двойки. Попробуем пересмотреть шаги.
Попробуем другой путь (прямой перебор):
Нам нужно получить . Заметим, что , а — это . Значит, последними командами могут быть 1 и 2.
Как получить из ?
1. Если мы возведем в квадрат (команда 1), получим . Из прибавлением/вычитанием 3 получить сложно за 1 шаг.
2. Попробуем использовать только вычитание (команду 2) в обратном порядке. Чтобы получить , нужно к какому-то числу прибавить 3.
Проверим последовательность команд 22212:
1) Команда 2:
2) Команда 2:
3) Команда 2:
4) Команда 1:
5) Команда 2:
Проверим количество команд: их ровно 5. Все действия выполнены верно, итоговое число получено из числа .
Ответ: 22212
Источник: ФИПИ