Исполнитель преобразует число на экране.
У исполнителя есть две команды, которым присвоены номера.
1. Прибавить 1.
2. Умножить на 2.
Первая команда увеличивает число на экране
Программа для исполнителя — это последовательность команд. Например, если в начальный момент на экране находится
Сколько существует программ, которые преобразуют исходное
Приведем решение на языке Python.
def fn(s, h):
if len(h) >= 3 and len(set(h[-3:])) == 1:
return 0
if s >= 14:
return 1 if s == 14 else 0
return fn(s+1, h+'1') + fn(s*2, h+'2')
print(fn(1, '' ))
Ответ: 6.
Приведем решение Ксении Ельцовой на языке Python.
def fn(s, h,p):
if s > h:
return 0
if s == 14 and not '111' in p and not '222' in p:
return 1
return fn(s + 1,h, p +'1') + fn(s*2, h,p +'2')
print(fn(1, 14,''))

