StartseitePi berechnenUmsetzung durch ein C++ Programm

Umsetzung durch ein C++ Programm

Genauere Ergebnisse erhält man, wenn man eine echte Programmiersprache zur Berechnung von Pi verwendet. Hier ein Beispiel in der Programmiersprache C++:

  1. #include <iostream>
  2. #include <iomanip>
  3. #include <cmath>
  4. using namespace std;

  5. int laenge(double zahl) {
  6.   double count;
  7.   count = 0;
  8.   while ((zahl/pow(10,count)) > 10)
  9.   count++;
  10.   return static_cast<int>(count);
  11. }

  12. int main() {

  13.   long double s;
  14.   double n;
  15.   long double pi;
  16.   long double backup;
  17.   int length;

  18.   //Startwerte
  19.   s = 1;
  20.   n = 1;
  21.   pi = 3;

  22.   do {
  23.   //Ausgabe
  24.   cout << 3*pow(2,n) << "eck: ";
  25.   length = laenge(3*pow(2,n));
  26.   for (int x=0;x<(9-length);x++)
  27.   cout << " ";
  28.   cout << setprecision(19) << pi << endl;
  29.   //neuen Wert fuer Pi berechnen
  30.   backup = pi;
  31.   s = sqrt(s*s/4+(1-sqrt(1-s*s/4))*(1-sqrt(1-s*s/4)));
  32.   pi = 3*pow(2,n)*s;
  33.   n++;
  34.   } while (backup != pi);

  35.   return 0;

  36. }
Ausblenden

Dieses Programm gibt folgendes Ergebnis aus:

6eck: 3 12eck: 3.105828541230249148 24eck: 3.132628613281238197 48eck: 3.139350203046867207 96eck: 3.141031950890509638 192eck: 3.141452472285462076 384eck: 3.141557607911857646 768eck: 3.141583892148318409 1536eck: 3.141590463228050096 3072eck: 3.141592105999271551 6144eck: 3.141592516692157448 12288eck: 3.141592619365383955 24576eck: 3.141592645033690897 49152eck: 3.141592651450767652 98304eck: 3.141592653055036842 196608eck: 3.141592653456104139 393216eck: 3.141592653556370963 786432eck: 3.141592653581437669 1572864eck: 3.141592653587704346 3145728eck: 3.141592653589271015 6291456eck: 3.141592653589662682 12582912eck: 3.141592653589760599 25165824eck: 3.141592653589785078 50331648eck: 3.141592653589791198 100663296eck: 3.141592653589792728 201326592eck: 3.14159265358979311 402653184eck: 3.141592653589793206 805306368eck: 3.14159265358979323 1610612736eck: 3.141592653589793236 3221225472eck: 3.141592653589793237 6442450944eck: 3.141592653589793238

Der letzte Wert entspricht dem bei Wikipedia gegebenen Näherungswert für Pi auf 18 Nachkommastellen genau, wobei die letzte Stelle abgerundet wurde.