zahl pi berechnen



  • hallo leute

    ich hab folgendes problem

    ich hab das ansi c programm geschrieben um pi auszurechen was auch wunderbar klappt aber ich möchte mehr stellen nach dem komma und da ich noch nicht so viel erfahrung mit der programmiererei habe wollte ich wissen ob das möglich ist

    ich meine man hat ja schon mehr stellen von pi und da ich 2 gb hauptspeicher habe möchte ich diesen gerene voll rechnen

    ich hab mir schon überlegt ob ich das mit einer char variable lösen kann da ich hier ja die länge definieren kann aber das wird nichts oder??

    hier der quellcode

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>

    void main(void)

    {

    double Aa,Ai;
    int n;

    Aa = 2 * sqrt(3);
    Ai = 3;

    printf("%1.16lf > pi > %1.16lf\n",Aa,Ai);

    for (n = 0; n <= 25; n ++)
    {
    Aa = 2 * Aa * Ai / (Aa + Ai);
    Ai = sqrt (Aa * Ai);

    printf("%1.16lf > pi > %1.16lf\n",Aa,Ai);
    }

    }

    hat vielleicht jemand eine lösung für das problem

    danke im vorraus



  • double hat nunmal nur eine begrenzte Genauigkeit. Wenn du mehr brauchst, musst du auf eine Lib zurückgreifen, die mit entsprechend grossen Gleitkommazahlen arbeiten kann. Du kannst dir natürlich sowas auch selber programmieren, ist aber nicht gerade trivial.
    Und deinen Hauptspeicher wirst du wohl auch nicht voll bekommen, dafür ist dein Rechner wahrscheinlich viel zu langsam.



  • super für die schnelle antwort

    du hast nicht zufällig ein beispiel wie ich mir die variable programieren kann

    na ja ich muss den speicher ja nicht voll kriegen aber ich fände es einfach toll wenn ich sagen kann mein programm könnte es theoretisch

    über weitere antworten würde ich mich sehr freuen

    danke



  • Brain11 schrieb:

    du hast nicht zufällig ein beispiel wie ich mir die variable programieren kann

    Nein. Ich hab zwar selbst schon Pi berechnen lassen, und zwar über eine entsprechende Entwicklungsreihe, aber mir reicht dabei die Genauigkeit von float bzw. double vollkommen aus. Entweder du schaust mal hier im Mathe Forum vorbei, vielleicht wurde da ja schon mehr über Algorithmen zur Pi Berechnung diskutiert oder du suchst einfach über google.
    Mit deinem bisherigen Verfahren kann ich mir nicht vorstellen, dass das funktioniert, da du ja sqrt() aus der Standard Bibliothek verwendest und diese Funktion halt auf double Genauigkeit limitiert ist.
    Für Libs, die mehr Genauigkeit handeln können, schau mal hier. Oder such gleich nach GMP.


Anmelden zum Antworten