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

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

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

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

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

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

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

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

A. Вычесть 1

B. Вычесть 4

C. Найти целую часть от деления на 3

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

Сколько существует программ, для которых при исходном числе 19 результатом является число 2, при этом траектория вычислений не содержит числа 7 и содержит 13?

Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы СBА при исходном числе 22 траектория состоит из чисел 7, 3, 2.



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

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

Ответ: 68

Начало: 19. Цель: 2.
Команды: A — n − 1; B — n − 4; C — ⌊n3⌋.
Обязательные числа: 13.
Запрещённые числа: 7.
Скобки ⌊ ⌋ означают целую часть: остаток от деления отбрасывается.

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

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

Этап 1: 19 → 13.
F(19) = 1.
F(18) = F(19) = 1.
F(17) = F(18) = 1.
F(16) = F(17) = 1.
F(15) = F(19) + F(16) = 1 + 1 = 2.
F(14) = F(18) + F(15) = 1 + 2 = 3.
F(13) = F(17) + F(14) = 1 + 3 = 4.

Этап 2: 13 → 2.
G(13) = 1.
G(12) = G(13) = 1.
G(11) = G(12) = 1.
G(10) = G(11) = 1.
G(9) = G(13) + G(10) = 1 + 1 = 2.
G(8) = G(12) + G(9) = 1 + 2 = 3.
G(7) = 0.
G(6) = G(10) = 1.
G(5) = G(9) + G(6) = 2 + 1 = 3.
G(4) = G(13) + G(12) + G(8) + G(5) = 1 + 1 + 3 + 3 = 8.
G(3) = G(11) + G(10) + G(9) + G(4) = 1 + 1 + 2 + 8 = 12.
G(2) = G(8) + G(6) + G(6) + G(3) = 3 + 1 + 1 + 12 = 17.

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

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

Ответ: 68.

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

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

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

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

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

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

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