≡ информатика
сайты - меню - вход - новости




Задания
Версия для печати и копирования в MS Word
Задание 22 № 16825

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

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

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

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

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

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

Программа для исполнителя РазДваТри — это последовательность команд.

Сколько существует программ, которые преобразуют исходное число 3 в число 16 и при этом траектория вычислений не содержит чисел 6 и 12?

Траектория вычислений — это последовательность результатов выполнения всех команд программы. Например, для программы 312 при исходном числе 6 траектория будет состоять из чисел 9, 10, 20.

Пояснение.

Искомое количество программ равно количеству программ, получающих из числа 3 число 16. Траектория вычислений не должна содержать чисел 6 и 12.

Пусть R(n) — количество программ, которые число 2 преобразуют в число n.

Верно следующее соотношение:

R(n) = R(n−1) + R(n/2)(если n — чётно) + R(n-3).

 

R(3) = 1

R(4) = 1

R(5) = 1

R(6) = 0

R(7) = 1

R(8) = R(4) + R(5) + R(7) = 3

R(9) = R(8) = 3

R(10) = R(5) + R(7) + R(9) = 5

R(11) = R(8) + R(10) = 8

R(12) = 0

R(13) = R(10) = 5

R(14) = R(7) + R(11) + R(13) = 14

R(15) = R(14) = 14

R(16) = R(8) + R(13) + R(15) = 22

 

Таким образом, количество программ, удовлетворяющих условию задачи равно 22.

 

Ответ: 22.