Исполнитель Увеличитель345 преобразует число, записанное на экране. У исполнителя три команды, которым присвоены номера:
1. Прибавь 3.
2. Прибавь 4.
3. Прибавь 5.
Первая из них увеличивает число на экране
Сколько есть программ, которые
Заметим, что все операции только лишь прибавляют некоторую константу к числу. Поэтому не важно, в каком порядке выполнять некоторый данный набор команд. Пусть x — количество первых команд, y — вторых, а z — третьих. Составим уравнение:
А именно — найдём с его помощью все наборы команд, которые подходят под условие. И уже для каждого набора в отдельности подсчитаем количество возможных перестановок.
Найдём все решения уравнения:
Количество перестановок для данного набора посчитаем по формуле подсчёта перестановок с повторениями:
Пусть каждого вида команд a, b и с. Тогда всего перестановок из этих команд будет
Найдём теперь ответ на задачу, просуммировав ответы для каждого набора:
Ответ: 73.
Приведём другое решение на языке Python.
def f(x, y):
if x > y:
return 0
if x == y:
return 1
else:
return f(x + 3, y) + f(x + 4, y) + f(x + 5, y)
print(f(22, 42))

