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 Bestimmung

    das 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;
    

  • Mod

    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.


Log in to reply