Исполнитель преобразует число на экране.
У исполнителя есть три команды, которые обозначены латинскими буквами.
A. прибавь 2
B. прибавь 3
C. умножь на 2
Программа для исполнителя — это последовательность команд.
Сколько существует программ, которые преобразуют число 10 в число 52, и при этом траектория вычислений содержит 16 или 24, но не содержит чисел 31 и 45?
Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы ACB при исходном числе 3 траектория состоит из чисел 5, 10, 13.
Приведём решение на языке Python.
def f(x, y):
if x > y or x == 31 or x == 45:
return 0
if x == y:
return 1
else:
return f(x + 2, y) + f(x + 3, y) + f(x * 2, y)
print(f(10, 16) * f(16, 52) + f(10, 24) * f(24, 52) - f(10, 16) * f(16, 24)* f(24, 52))
Ответ: 12762.

