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