Исполнитель преобразует число на экране.
У исполнителя есть две команды, которые обозначены латинскими буквами:
A. вычти 1
B. найди целую часть от деления на 2
Программа для исполнителя — это последовательность команд.
Сколько существует программ, которые преобразуют число 65 в число 4, и при этом траектория вычислений содержит числа 14 и 31, но не содержит числа 9?
Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы ABA при исходном числе 7 траектория состоит из чисел 6, 3, 2.
Приведём решение на языке Python.
def f(x, y):
if x < y :
return 0
if x == 9:
return 0
if x == y:
return 1
else:
return f(x - 1, y) + f(x // 2, y)
print(f(65, 31) * f(31, 14) * f(14, 4))
Ответ: 125.

