Wie hoch ist die maximale Rekursionstiefe in Python und wie erhöht man sie?

Habe ich diese tail-rekursive Funktion hier:

def fib(n, sum):
    if n < 1:
        return sum
    else:
        return fib(n-1, sum+n)

c = 998
print(fib(c, 0))

Es funktioniert bis n=997, dann einfach bricht und spuckt eine "maximale Rekursionstiefe überschritten im Vergleich" RuntimeError. Ist das nur ein stack-overflow? Gibt es eine Möglichkeit dies zu umgehen?

Kommentar zu dem Problem - Öffnen
memoization beschleunigen könnten Ihre Funktion und erhöhen Sie Ihre effektive rekursiven Tiefe, indem Sie die zuvor berechneten Werte zu beenden, anstatt die Erhöhung der stack-Größe. Kommentarautor: Cyoce
Nur aus Neugier, warum hast du die Namen dieser fib? Waren, die Sie beabsichtigen zu verwenden, diese als Helfer zur Berechnung der Fibonacci-Folge? Wenn ja, was ist Ihr Ansatz? Kommentarautor: yoniLavi

InformationsquelleAutor der Frage quantumSoup | 2010-07-23

Schreibe einen Kommentar