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