Тема 16. Рекурсивные алгоритмы

16.01 Одна функция

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела рекурсивные алгоритмы
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#57455

Последовательность чисел задается рекуррентным соотношением:

F (n) = n+ 1  при n > 12

F (n) = F(n +1) +3 ⋅n  , если n ≤ 12

Чему равно F(5)  ?

Показать ответ и решение

Рекурсивное решение
В задаче задан рекурсивный алгоритм, при котором функция в процессе вычислений вызывает сама себя с другими аргументами. Для реализации создаём пользовательскую функцию в Python с помощью def  . Внутри функции используем условный оператор if  вместе с else  , чтобы задать два варианта работы: что возвращать при n > 12  (базовый случай) и в остальных случаях. В каждом случае в return  записываем соответствующее выражение, что запускает цепочку рекурсивных вызовов. Процесс продолжается до достижения базового случая n > 12  , после чего результаты возвращаются обратно по цепочке. В завершение вычисляем f(5)  с использованием функции и получаем результат.

def f(n):  # объявление функции
    if n > 12:  # базовый случай
        return n + 1
    else:  # рекурсивный случай
        return f(n + 1) + 3 * n


print(f(5))  # выводим ответ

Решение «руками»:

Последовательно находим:

F (13) = 13 + 1 = 14  ,

F (12) = F(13)+ 3⋅12 = 14 + 36 = 50  ,

F (11) = F(12)+ 3⋅11 = 50 + 33 = 83  ,

F (10) = F(11)+ 3⋅10 = 83 + 30 = 113  ,

F (9) = F(10)+ 3⋅9 = 113 + 27 = 140  ,

F (8) = F(9)+ 3⋅8 = 140+ 24 = 164  ,

F (7) = F(8)+ 3⋅7 = 164+ 21 = 185  ,

F (6) = F(7)+ 3⋅6 = 185+ 18 = 203  ,

F (5) = F(6)+ 3⋅5 = 203+ 15 = 218  .

Ответ: 218

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

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

Бесплатное онлайн-обучение

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

Налоговые вычеты

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

Специальное предложение
для учителей

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

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!