Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера.
1. Прибавить 1.
2. Умножить на 2.
3. Прибавить 3.
Первая команда увеличивает число на экране
Программа для исполнителя — это последовательность команд. Например, если в начальный момент на экране находится
Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для
Приведем решение на языке Python.
def fn(x, y, sp=[]):
if x >= y:
return 1 if x == y and 10 in sp and 13 not in sp and 17 not in sp else 0
return fn(x+1, y, sp+[x+1]) + fn(x*2, y, sp+[x*2]) + fn(x+3, y, sp+[x+3])
print(fn(3, 22, [3]))
Ответ: 168.
Приведем другое решение на языке Python.
def f(x, y):
if x > y or x == 13 or x == 17:
return 0
if x == y:
return 1
else:
return f(x + 1, y) + f(x * 2, y) + f(x + 3, y)
print(f(3, 10) * f(10, 22))

