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

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

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

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

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

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

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

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

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

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

3.     Умножить на 3

Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2, третья умножает его на 3. Программа для исполнителя Кантата – это последовательность команд.

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

Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы 123 при исходном числе 7 траектория будет состоять из чисел 8, 10, 30.



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

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

Ответ: 650

Начало: 2. Цель: 19.
Команды: 1 — n + 1; 2 — n + 2; 3 — n · 3.
Обязательные числа: 9.
Запрещённые числа: 12.

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

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

Этап 1: 2 → 9.
F(2) = 1.
F(3) = F(2) = 1.
F(4) = F(2) + F(3) = 1 + 1 = 2.
F(5) = F(3) + F(4) = 1 + 2 = 3.
F(6) = F(2) + F(4) + F(5) = 1 + 2 + 3 = 6.
F(7) = F(5) + F(6) = 3 + 6 = 9.
F(8) = F(6) + F(7) = 6 + 9 = 15.
F(9) = F(3) + F(7) + F(8) = 1 + 9 + 15 = 25.

Этап 2: 9 → 19.
G(9) = 1.
G(10) = G(9) = 1.
G(11) = G(9) + G(10) = 1 + 1 = 2.
G(12) = 0.
G(13) = G(11) = 2.
G(14) = G(13) = 2.
G(15) = G(13) + G(14) = 2 + 2 = 4.
G(16) = G(14) + G(15) = 2 + 4 = 6.
G(17) = G(15) + G(16) = 4 + 6 = 10.
G(18) = G(16) + G(17) = 6 + 10 = 16.
G(19) = G(17) + G(18) = 10 + 16 = 26.

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

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

Ответ: 650.

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

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

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

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

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

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

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