Die transzendente Kreiszahl pi kann angenähert werden, indem man
die Zahl der Ecken eines dem Kreis einbeschriebenen Polygon solange verdoppelt,
bis das Vieleck eng genug am Kreis anliegt. Als Start-Vieleck wird hier
ein 6-Eck genommen. Die Formel, um die Seitenlänge s_2n aus s_n zu
berechnen, lautet s_2n = sqrt(2-sqrt(4-s_n^2)) - bei einem angenommenen
Kreisradius r = 1. Den Umfang des 2n-Ecks erhält man, indem man 2n-mal
die Seite s_2n nimmt. Der Grenzwert bei dem die Funktion mit einem genügend
genauen Ergebnis abbricht, ist willkürlich gesetzt ung genau dann
erreicht, wenn die 5. Nachkommastelle feststeht.
double cm_pi_archimedes() {
int n=6;
double s_n=1, s_2n=0, pi=3, temp=pi;
do {
std::cout << pi << '\n';
temp = pi;
s_2n = sqrt(2-sqrt(4-(s_n * s_n)));
pi = n * s_2n;
n = 2 * n;
s_n = s_2n;
} while((pi-temp) > 0.00001);
return pi;
}