Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:
1. Увеличь на 6
2. Увеличь на 9
3. Умножь на 3
Программа для исполнителя – это последовательность команд.
Сколько различных результатов можно получить при исходном числе 3 в ходе исполнения программы, содержащей ровно 9 команд, если известно, что повторять можно только первую команду, а вторую и третью — нельзя (после первой команды может идти любая другая, но после второй не может идти вторая, а после третьей — третья)?
# Множество различных результатов работы программы
s = set()
# c - номер команды на предыдущем шаге
# k - счётчик количества совершенных команд
def f(a, c=0, k=0):
if k == 9:
s.add(a)
return
f(a + 6, 1, k + 1)
if c != 2:
f(a + 9, 2, k + 1)
if c != 3:
f(a * 3, 3, k + 1)
f(3)
print(len(s))
Ответ: 292