Исполнитель преобразует число на экране.
У исполнителя есть три команды, которые обозначены буквами.
A. Вычесть 1.
B. Умножить на 2.
C. Умножить на 3.
Программа для исполнителя — это последовательность команд. Например,
Приведём решение на языке Python.
def f(start, end, k):
if start > end + 1:
return 0
if start == end:
return 1
else:
if k == 1:
return f(start * 2, end, k - 1) + f(start * 3, end, k - 1)
else:
return f(start - 1, end, k + 1) + f(start * 2, end, k) + f(start * 3, end, k)
print(f(3, 15, 0))
Ответ: 6.
Приведём решение Юрия Красильникова на языке Python.
def f(старт,финиш,команда):
if старт > финиш+1:
return 0
if старт == финиш:
return 1
return f(старт*2,финиш,'B')+f(старт*3,финиш,'C')+(f(старт-1,финиш,'A') if команда != 'A' else 0)
print(f(3,15,''))

