Задание №5 — Алгоритмы и программирование
У исполнителя Квадратор две команды, которым присвоены номера:
1. возведи в квадрат
2. вычти 2
Первая из них возводит число на экране во вторую степень, вторая уменьшает его на 2.
Исполнитель работает только с натуральными числами.
Составьте алгоритм получения из числа 2 числа 144, содержащий не более
5 команд. В ответе запишите только номера команд.
(Например, 12221 это алгоритм:
возведи в квадрат
вычти 2
вычти 2
вычти 2
возведи в квадрат,
который преобразует число 4 в 100.)
Если таких алгоритмов более одного, то запишите любой из них.
Правильный ответ
11221
Пояснение
Решение.
Нам необходимо составить алгоритм для исполнителя Квадратор, который превращает число в число ровно за шагов (или меньше). У нас есть две команды:
1. Возведение в квадрат: .
2. Вычитание двойки: .
Для решения таких задач удобнее всего двигаться «с конца» — от итогового числа к исходному числу . При этом команды будут инвертированы (обратны):
1. Вместо возведения в квадрат будем извлекать квадратный корень: .
2. Вместо вычитания двойки будем её прибавлять: .
Шаг 1. Посмотрим на число . Оно является полным квадратом (). Значит, последней командой в прямом алгоритме (из в ) логично предположить возведение в квадрат.
Если последняя команда — №1, то на предыдущем шаге было число .
Шаг 2. Теперь работаем с числом . Является ли оно квадратом натурального числа? Нет ( — не целое число). Значит, к числу мы могли прийти только с помощью команды №2 (вычти 2).
В обратном ходе прибавляем: .
Шаг 3. Работаем с числом . Оно также не является полным квадратом. Значит, снова используем обратную команду для №2.
Прибавляем: .
Шаг 4. Число является полным квадратом (). Значит, в прямом алгоритме здесь могла быть команда №1.
В обратном ходе извлекаем корень: .
Шаг 5. Число является полным квадратом ().
В обратном ходе извлекаем корень: . Мы пришли к исходному числу!
Теперь запишем наши действия в прямом порядке (от к ):
1. Число . Команда 1 (возведи в квадрат): .
2. Число . Команда 1 (возведи в квадрат): .
3. Число . Команда 2 (вычти 2): .
4. Число . Команда 2 (вычти 2): .
5. Число . Команда 1 (возведи в квадрат): .
Полученная последовательность команд: 11221. Она содержит ровно 5 команд, что соответствует условию задачи.
Ответ: 11221
Источник: ФИПИ