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

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

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

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

Задача 1#53436

Алгоритм вычисления значения функции F(n,m)  , где n  , m  – натуральные числа, задан следующими соотношениями:

F (n,m ) = 2  , при n <=  2  или m  <= 5

F (n,m ) = F (n− 3,m) + F(n,m − 2)∗m + F (n − 5,m − 5)∗n  , при n > 2  и m > 5

Чему равно значение функции F(11,16)  ? В ответе запишите только натуральное число.

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

Рекурсивное решение

В задаче задан рекурсивный алгоритм, при котором функция в процессе вычислений вызывает сама себя с другими аргументами. Для реализации создаём пользовательскую функцию в Python с помощью def  . Внутри функции используем условный оператор if  , чтобы задать ветвление: базовый случай: при n ≤ 2  или m ≤ 5  F (n,m) = 2  ; рекурсивный случай (для n > 2  и m > 5  ): F (n,m ) = F (n− 3,m) + m ⋅F(n,m − 2)+ n⋅F (n− 5,m − 5)  . Нужно вычислить F(11,16)  . Реализуем рекурсивную функцию строго по определению и вызовем её для (11,16)  .

def f(n, m):
    # База: если n <= 2 или m <= 5
    if n <= 2 or m <= 5:
        return 2

    # Рекуррентный шаг по формуле из условия
    return f(n - 3, m) + f(n, m - 2) * m + f(n - 5, m - 5) * n

print(f(11, 16))

Ответ: 160494512

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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