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