Exkurs - Grenzen der rekursiven Verarbeitung bei realen Systemen
Näherung von pi nach Leibniz
Der Gelehrte Gottfried Wilhelm Leibniz entwickelte im 17 Jahrhundert eine Möglichkeit, die Kreiszahl π durch eine Reihe anzunähern. Je mehr Glieder der Reihe du berechnest und addierst, desto genauer wird das Ergebnis (das du dann noch mit 4 multiplizieren musst).
Die Leibniz-Reihe wird wie folgt berechnet:
Der erste Summand ist also 1, dann folgt
Die folgenden beiden Funktionen berechnen die Leibniz-Reihe bis zur angegebenen Grenze - einmal iterativ (also mit einer while
-Wiederholung) und einmal rekursiv.
Aufgabe 1
Teste, ob die beiden Funktionen das gleiche Ergebnis liefern!
Ab wann stimmt der Wert für π mindestens bis zur zweiten Stelle? Schreibe ein Programm, das den Wert für diese Grenze automatisch ermittelt.
Aufgabe 2
Vielleicht hast du schon bemerkt, dass die rekursive Lösung ab einer bestimmten Grenze nicht mehr funktioniert:
Warum ist das so?
Warum begrenzt der Python-Interpreter die Rekursionstiefe?
Teste dafür den Aufruf der rekursiven Funktion einmal im Python-Tutor:
Du kannst auch einmal mit der Ausführung der iterativen Version im Python-Tutor vergleichen.