Задание EGEINFA1A489: Подсчёт программ исполнителя

ФИПИ · ЕГЭ · все форматы ответа · 2475 заданий

Открыть решение ↓ Ошибка или пожелание

Тип задачи: Подсчёт программ исполнителя.

Учебные темы: Определение возможных результатов работы простейших алгоритмов управления исполнителями и вычислительных алгоритмов. Определение исходных данных, при которых алгоритм может дать требуемый результат.

Впишите правильный ответ.

Исполнитель преобразует число на экране.

У исполнителя есть три команды, которые обозначены латинскими буквами:

A. Прибавить 1

B. Прибавить 2

C. Умножить на 2

Программа для исполнителя –  это последовательность команд.

Сколько существует программ, для которых при исходном числе 3 результатом является число 18, при этом траектория вычислений содержит число 14 и не содержит 8?

Траектория вычислений программы –  это последовательность результатов выполнения всех команд программы. Например, для программы CBA при исходном числе 7 траектория будет состоять из чисел 14, 16, 17.



i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.3 Определение возможных результатов работы простейших алгоритмов управления исполнителями и вычислительных алгоритмов. Определение исходных данных, при которых алгоритм может дать требуемый результат
Тип ответа:Краткий ответ
Номер: A1A489
НЕ РЕШЕНО Ответить

Решение задания EGEINFA1A489

Ответ: 360

Начало: 3. Цель: 18.
Команды: A — n + 1; B — n + 2; C — n · 2.
Обязательные числа: 14.
Запрещённые числа: 8.

На рассматриваемом промежутке каждая разрешённая команда строго изменяет число: оно возрастает. Поэтому возвращений и циклов нет. Если выйти за конечную границу в направлении движения, вернуться к цели уже нельзя. Обязательные числа посещаются в единственном порядке: 3 → 14 → 18. Разобьём путь в этих точках. Любую программу первого этапа можно соединить с любой программой следующего; разбиение единственно. Поэтому количества программ на этапах перемножаются.

На каждом этапе считаем число программ из его начального числа в n. Для первого этапа обозначим его F(n), для следующих используем G(n) и H(n), если они нужны. В начальной точке значение равно 1: это пустая программа. Для недостижимого числа, нецелого аргумента и числа вне промежутка этапа значение равно 0. В запрещённой точке также ставим 0: продолжать путь через неё нельзя.
Любая непустая программа заканчивается одной из разрешённых команд. Складываем количества программ для всех её допустимых предшественников. Если разные команды ведут из одного числа в одно и то же число, это разные программы: соответствующее слагаемое учитывается повторно.
Для остальных точек общая формула имеет вид:
F(n) = F(n − 1) + F(n − 2) + F(n2).
Слагаемое для умножения на 2 учитываем только при делимости n на 2. Нулевые слагаемые из-за выхода за промежуток ниже опускаем. Для G и H действует та же формула со своей начальной точкой.

Этап 1: 3 → 14.
F(3) = 1.
F(4) = F(3) = 1.
F(5) = F(3) + F(4) = 1 + 1 = 2.
F(6) = F(3) + F(4) + F(5) = 1 + 1 + 2 = 4.
F(7) = F(5) + F(6) = 2 + 4 = 6.
F(8) = 0.
F(9) = F(7) = 6.
F(10) = F(5) + F(9) = 2 + 6 = 8.
F(11) = F(9) + F(10) = 6 + 8 = 14.
F(12) = F(6) + F(10) + F(11) = 4 + 8 + 14 = 26.
F(13) = F(11) + F(12) = 14 + 26 = 40.
F(14) = F(7) + F(12) + F(13) = 6 + 26 + 40 = 72.

Этап 2: 14 → 18.
G(14) = 1.
G(15) = G(14) = 1.
G(16) = G(14) + G(15) = 1 + 1 = 2.
G(17) = G(15) + G(16) = 1 + 2 = 3.
G(18) = G(16) + G(17) = 2 + 3 = 5.

Перемножим результаты этапов: 72 · 5 = 360.
Всего программ: 360.

Проверка. Независимый перебор последовательностей команд начинается с исходного числа и пробует каждую разрешённую команду отдельной ветвью. Ветка прекращается при попадании в запрещённое число или при выходе за цель. При достижении цели учитываем её только после посещения всех обязательных чисел. Такой перебор даёт 360 программ — столько же, сколько поэтапный подсчёт. Запрещённые значения учтены на каждом этапе; при соединении этапов обязательные числа не пропускаются. Нужное количество записываем одним целым числом.

Ответ: 360.

Помочь улучшить сайт

Напишите пожелание к сайту или решению либо сообщите о найденной неточности в задании EGEINFA1A489.

Сообщение увидит только команда сайта: на странице оно не публикуется.

Комментарии к решению

Комментарии видны всем посетителям сайта.

Комментариев пока нет. Будьте первым.

Чтобы оставить комментарий, войдите или зарегистрируйтесь.