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