Guten Abend allerseits,
als Übung versuche ich die Kreiszahl Pi zu berechnen mit ca. 20 Nachkommastellen. Mit dem ersten Algorithmus aus Wikipedia konvergierte das Ergebnis nur sehr langsam, deshalb habe ich mich im zweiten Ansatz für folgende Formel entschieden:
https://de.wikipedia.org/wiki/Bailey-Borwein-Plouffe-Formel
Mit Hilfe von ChatGPT konnte ich folgenden Code in C++ zum Laufen bringen:
long double approx_pi (long int r) { long double term1, term2, term3, term4, term5; long double pi=0; for (long int k=0;k<=r;k++) { term1= 4.0/(8.0*k+1.0); term2= 2.0/(8.0*k+4.0); term3= 1.0/(8.0*k+5.0); term4= 1.0/(8.0*k+6.0); term5= 1.0/pow(16.0, k); pi = pi+term5*(term1-term2-term3-term4); } return pi; }
Das Ergebnis ist jedoch bei Werten für r von 10 und größer stets gleich. Als Ausgabe erhalte ich immer 3.14159. Liegt das an der Ausgabefunktion von C++ cout? Die Berechnung erfolgt sehr schnell, aber ich hätte gerne wenigstens 20 korrekte Nachkommastellen in der Ausgabe.
Wie kann ich das hinbekommen?
Grüße
schollsky