OpenFIPI 2.0
105
5
oge_cA4029
У исполнителя Вычислитель две команды, которым присвоены номера:
1. прибавь 3
2. умножь на 2
Первая из них увеличивает число на экране на 3, вторая удваивает его.
Составьте алгоритм получения из числа 1 числа 25, содержащий не более 5 команд. В ответе запишите только номера команд.
(Например, 11221– это алгоритм:
прибавь 3
прибавь 3
умножь на 2
умножь на 2
прибавь 3
который преобразует число 4 в 43.)
Если таких алгоритмов более одного, то запишите любой из них.
12121
Решим обратным ходом.
Начальное: 1, конечное: 25.
Команды:
1. прибавь 3
2. умножь на 2
Обратные команды (от 25 к 1):
- вычти 3 (обратная к 1)
- раздели на 2 (обратная к 2), только если число чётное.
---
25 — нечётное → последняя команда не могла быть умножением на 2 (иначе предыдущее было бы дробным).
Значит, последняя команда была 1: 25 – 3 = 22.
22 — чётное, может быть получено умножением на 2: 22 / 2 = 11.
11 — нечётное → получено командой 1: 11 – 3 = 8.
8 — чётное → получено умножением на 2: 8 / 2 = 4.
4 — чётное → получено умножением на 2: 4 / 2 = 2.
2 — чётное → получено умножением на 2: 2 / 2 = 1.
---
Запишем обратный путь:
25 ← 22 ← 11 ← 8 ← 4 ← 2 ← 1.
Но это 6 шагов (от 1 до 25 — 5 команд, от 25 до 1 — 5 обратных команд).
Посмотрим внимательно: обратных команд действительно 5:
25 → 22 (обр. 1)
22 → 11 (обр. 2)
11 → 8 (обр. 1)
8 → 4 (обр. 2)
4 → 2 (обр. 2)
2 → 1 (обр. 2) — это 6-й шаг! Значит, я ошибся, путь оказался длиннее.
Попробуем короче:
1 → (1) 4
4 → (2) 8
8 → (2) 16
16 → (1) 19
19 → (1) 22 — нет 25.
Другой вариант:
1 → 4 (1)
4 → 7 (1)
7 → 14 (2)
14 → 28 (2)
28 → 25 (1) — неверно, 28 нельзя получить из 14 за 1 шаг (28/2 = 14 можно, но у нас 14→28 (2)).
Так:
1 → (1) 4 → (1) 7 → (2) 14 → (2) 28 → (1) 25 — не получится, 28–3=25, да, но 25 не 28–3? 28–3=25? Да, правильно. Команда вычитания? Её нет. У нас есть только **+3** и ×2.
28 → (1) 31, а не 25. Ошибка.
Правильный короткий путь:
25 – 3 = 22 (обратная 1)
22 ÷ 2 = 11 (обратная 2)
11 – 3 = 8 (обратная 1)
8 ÷ 2 = 4 (обратная 2)
4 – 3 = 1 (обратная 1)
Итого обратные команды: 1, 2, 1, 2, 1 (5 команд).
Прямой порядок: обратный путь 1←4←8←11←22←25.
От 1 до 25:
1 → +3=4 (1)
4 → ×2=8 (2)
8 → +3=11 (1)
11 → ×2=22 (2)
22 → +3=25 (1)
Проверка:
1 (+3) = 4
4 (×2) = 8
8 (+3) = 11
11 (×2) = 22
22 (+3) = 25 ✅
Команды: **1, 2, 1, 2, 1**
---
**Ответ: 12121**
Просмотреть отправленные ответы oge_cA4029