Профиматика
Исполнитель преобразует число, записанное на экране. У исполнителя есть четыре команды которые обозначены латинскими буквами:
A. Прибавить 1
B. Прибавить 2
С. Прибавить 4
D. Прибавить 8
Программа исполнителя — это последовательность команд.
Сколько существует программ, для которых при исходном числе 16 результатом является число 48, если никакую из команд нельзя повторять дважды подряд?
Добавлено: 27.04.26 15:59
Решение на Python:
def f(start, end, k=0):
if start == end: return 1
if start > end: return 0
if k == 1:
return f(start + 2, end, 2) + f(start + 4, end, 4) + f(start + 8, end, 8)
if k == 2:
return f(start + 1, end, 1) + f(start + 4, end, 4) + f(start + 8, end, 8)
if k == 4:
return f(start + 1, end, 1) + f(start + 2, end, 2) + f(start + 8, end, 8)
if k == 8:
return f(start + 1, end, 1) + f(start + 2, end, 2) + f(start + 4, end, 4)
else:
return f(start + 1, end, 1) + f(start + 2, end, 2) + f(start + 4, end, 4) + f(start + 8, end, 8)
print(f(16, 48))Ответ: 41993
Автор - IdealniyAriets
None