Количество рекурсивных вызовов функций - PullRequest
0 голосов
/ 20 июня 2020

Я новичок в Python, и мне было интересно, как получить количество рекурсивных вызовов функций? это 2 ^ n (если n является аргументом)

1 Ответ

1 голос
/ 20 июня 2020

Количество звонков полностью зависит от алгоритма. Иногда это 2 ** n, но иногда это может быть n! или квадратичность c, или что-нибудь еще.

Чтобы определить, сколько их, вы можете использовать мой метод. Некоторые другие пользователи могут этого избежать, но использование глобального счетчика - это быстрый и простой способ подсчитать количество вызовов функций.

function_calls = 0
def fibonacci_recursive(n):
    global function_calls
    function_calls += 1
    if n == 0:
        return 1
    elif n == 1:
        return 1
    else:
        return fibonacci_recursive(n-1) + fibonacci_recursive(n-2)
ans = fibonacci_recursive(20)
print("There were",function_calls,"function calls.")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...