23.01 Количество программ из A в B
Ошибка.
Попробуйте повторить позже
Исполнитель Christmas преобразует число на экране. У исполнителя есть две команды:
1. Прибавить 4
2. Умножить на 3
Программа для исполнителя - это последовательность команд. Сколько существует значений, в которые можно прийти не более чем за 10 команд из числа 5?
Решение рекурсией
Определим функцию f(a, c, m), которая будет вызывать саму себя. Она подсчитает количество результатов за определенное число программ. Функция возвращает:
- 0, если a > b, так как такая траектория точно не будет подходящей и ее не нужно учитывать в подсчете количества траекторий;
- список со значениями, если a == b, так как единица означает, что мы нашли путь, который число А может превратить в число B выполнив все условия задачи;
- значения для трёх возможных переходов (+4, умножить на 3), если a < b, так как такая траектория еще не нарушила условия задачи и может стать подходящей.
d = set() # Создание списка # Функция для подсчета количества программ преобразования числа a в новые числа, m - число допустимых команд def f(a, c, m): # c - количество команд if c > m: # Если конечное значение больше числа команд, вывести 0 return 0 if c == m: # Если конечное значение равно числу команд, вывести список d.add(a) return # Если конечное значение меньше числа команд, выполнить команды if c < m: f(a + 4, c + 1, m) # Выполним +4 к текущему числу f(a * 3, c + 1, m) # Выполним умножение текущего числа for i in range(11): f(5, 0, i) # Найдем все значения не более чем через 10 команд print(len(d))
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!