Задание №5 — Алгоритмы и программирование
У исполнителя Квадратор две команды, которым присвоены номера:
1. возведи в квадрат
2. прибавь 3
Первая из них возводит число на экране во вторую степень, вторая увеличивает его на 3.
Составьте алгоритм получения из числа 1 числа 25, содержащий не более
5 команд. В ответе запишите только номера команд.
(Например, 12221 это алгоритм:
возведи в квадрат
прибавь 3
прибавь 3
прибавь 3
возведи в квадрат,
который преобразует число 2 в 169.)
Если таких алгоритмов более одного, то запишите любой из них.
Правильный ответ
21222
Пояснение
Решение.
Нам необходимо составить алгоритм для исполнителя Квадратор, который преобразует число в число за ограниченное количество шагов (не более 5 команд). У исполнителя есть две команды:
1. возведи в квадрат (обозначим как );
2. прибавь 3 (обозначим как ).
Будем решать задачу методом обратного хода — от конечного числа к начальному числу . Это удобнее, так как количество возможных действий на каждом шаге уменьшается. Обратные команды будут такими:
1. извлеки квадратный корень ();
2. вычти 3 ().
Шаг 1. Начнем с числа .
Из числа можно извлечь корень: (команда 1).
Или можно вычесть 3: (команда 2).
Попробуем пойти по пути извлечения корня (команда 1 в обратном порядке соответствует команде 1 в прямом).
Шаг 2. У нас число .
Корень из не извлекается нацело, поэтому используем только вычитание:
(команда 2).
Шаг 3. У нас число .
Корень из не извлекается нацело. Вычитаем 3:
. Это число меньше начального (), значит, этот путь тупиковый. Вернемся назад.
Попробуем другой путь (начиная с конца):
1. (команда 2)
2. (команда 2)
3. (команда 2)
4. Из можно извлечь корень: (команда 1)
5. Из можно извлечь корень: (команда 1). Опять не приходим к .
Или из вычесть 3: (команда 2). Это подходит!
Запишем полученную последовательность обратных действий: .
Теперь запишем эти команды в прямом порядке (от к ) и заменим их на номера из условия:
1. (команда 2)
2. (команда 1)
3. (команда 2)
4. (команда 2)
5. (команда 2)
Проверим количество команд: их ровно 5. Последовательность номеров команд: 2, 1, 2, 2, 2.
Ответ: 21222
Источник: ФИПИ