ich zerbreche mir gerade den Kopf darüber wie genau rekursive Funktionen funktionieren, vllt kanns mir ja hier jemand für doofe erklären. Habe schon allerlei Videos gesehen und im Netz gestöbert aber irgendwie wills nicht klick machen...
Als Beispiel die Fibonacci-Zahlen rekursiv:
Code: Alles auswählen
def fib (n):
if n<2:
return n
else:
return (fib(n-1) + fib(n-2))
fib(4)+ fib(3)
Dann wird für die beiden wieder die Funktion aufgerufen also für fib(4): fib(3) + fib(2)
und für fib(3): fib(2) + fib(1) usw...
Bis dann irgendwann der Rekursionsanker "greift".
Was ich nicht kapiere ist: WARUM "wickelt" sich die Funktion dann wieder auf?
Also WIESO werden die Teilergebnisse dann folgerichtig zusammenaddiert um aufs Ergebnis zu kommen?
Habe irgendwo gelesen, dass die Teilergebnisse intern in einer LIFO-Struktur im Speicher abgelegt werden (wenn ich das richtig verstanden habe), aber damit komm ich auch nicht so richtig weiter...
Kann mir das jemand für ganz Doofe erklären?
Danke im Voraus!