Kreiszahl Pi ermitteln
-
Auf wikipedia ist eine "einfache" methode zu finden mit der man pi annähern kann.
http://de.wikipedia.org/wiki/Kreiszahl#N.C3.A4herungskonstruktion
bei
Statistische Bestimmungdas hab ich jetzt mal nachgecoded und erstmal riesen probleme mit den zfallszahlen gehabt.
geschafft hab ichs dann mit (double)rand()/RAND_MAX;trotzdem ist das ergebniss nicht sehr zufriedenstellend da der näherungswert von pi bei 10695726663 Würfen erst oder noch bei : 3.14152026 ist.
Meine Frage ist die methode so schlecht oder hab ich irgendwo nen Fehler reinprogrammiert `?
long double in(0),gesamt(1); long double x,y; long double pi; unsigned int zahler; srand(static_cast<int>(time(0)));rand(); while(true) { while(zahler <= 100000000) { zahler++; x = (double)rand()/RAND_MAX; y = (double)rand()/RAND_MAX; // cout << setprecision(100) << x << "\n"; // cout << setprecision(100) << y << "\n"; gesamt++; if (x*x + y*y <= 1) { in++; } } pi = (4*((float)in/(float)gesamt)); cout << "Pi: " << setprecision(100) << pi << "\n" << in << "\n" << gesamt << "\n\n"; zahler = 0;
-
Ich habe jetzt nicht das Programm nach Fehlern abgesucht, aber: Ja, die Methode ist so schlecht. Das ist bloß eine Scherzmethode, eine Kuriosität wie man Pi auch durch ein Zufallsexperiment bestimmen kann.
-
Sschwenk schrieb:
trotzdem ist das ergebniss nicht sehr zufriedenstellend da der näherungswert von pi bei 10695726663 Würfen erst oder noch bei : 3.14152026 ist.
10695726663 ist 10^10. Dann hast Du eine Genauigkeit von ca 1:10^5 zu erwarten. Immer ohne Garantie, alles Zufall! Jo, paßt ja beinahe. Du hast aber schon einen großen Fehler drin, weil der Zufallszahlengenerator rand() für solche Messungen nicht gut genug ist.
-
Und welche art von Zufallszahl liefert dann ein besseres ergebniss ?
Bin jetzt bei 200000000000 "Würfen" mit Pi als 3.14152259
-
Wie kann ich eigentlich eine 1:6 Warscheinlichkeit bekommen also dass
0-1/6 genauso warscheinlich ist wie
1/6-6/6 ?
-
chwenk schrieb:
Und welche art von Zufallszahl liefert dann ein besseres ergebniss ?
Bessere Generatoren. Da würde ich gleich einen mit sehr langer Periode nehmen, also empfehle ich ausnahmsweise(!) mal den mersenne twister prng.