
Problemsolving with Programming
Recusrion bedeutet im Deutschen so viel wie Selbstreferenz. Damit ist in Python eine Funktion gemeint, die sich selber aufruft.
Ein Beispiel aus der realen Welt wäre , wenn man zwei Spiegel parallel gegenüber aufstellt. Stellt man in die Mitte dann ein Objekt, wird dieses rekursiv gespiegelt.
Als kleines Beispiel schreiben wir eine Funktion, die die Fakultät einer Zahl finden soll. Die Fakultät ist die Zahl von der die Fakultät abgefragt wird mal der nächst kleineren Zahl und dieses Ergebnis abermals mal der kleineren Zahl usw.
Das sieht in der Praxis wie folgt aus:
5! = 5*4*3*2*1
5! = 20*3*2*1
5! = 60*2*1
5! = 120
Die Funktion ist von ist rekursiv, da sie sich selber aufruft. Bei jedem Durchlauf wird die Variable x um 1 verkleinert und mit sich selbst multipliziert. Das geht so lange, bis x den Wert 1 erreicht hat

Im unteren Bild soll noch einmal genauer dargestellt werden, wie die Durchläufe im Detail aussehen und was bei jedem Durchlauf genau passiert. Die Funktion calc_factorial wird also so oft aufgerufen, bis die Variable x den Wert 1 erreicht hat (hier x=4). Alle bis dahin errechneten Zahlen werden miteinander multipliziert, wobei der kleinste auftretende Wert 1 ist.

Diese Beispiel funktioniert aus mathematischen Gründen natürlich nur, wenn der integer positiv ist.
