pi ausrechnen

Von: , Frage gestellt am Fr, 20. Aug 1999

[Der Text dieses Artikels ist nicht mehr verfügbar.]

5 Antworten zu dieser Frage

  1. Antwort von nach 6 Tagen hilfreich
    Re: pi ausrechnen

    wie kann man pi ausrechen ?
    ich will nicht das ergebnis sondern die
    formel dazu :)
    Hier ein kleines C-Programm, das Pi auf bel. viele Stellen berechnet (genügend Geduld, Speicher und Rechenleistung vorausgesetzt):

    #include <stdio.h:
    #include <stdlib.h:

    void main( int argc, char *argv[ ] )
    {
    int* pf;
    int n;
    int a=10000, b=0;
    int c, d=0;
    int e=0, g=0;

    if( argc!=2 ){
    printf( "Aufruf: PIComp <Stellen:\n\n" );
    exit( 1 );
    }

    // Stellenanzahl holen
    n=atoi( argv[ 1 ] );

    c=n*7/2;

    // Speicher anlegen
    pf=new int[ c+1 ];
    if( !pf ){
    printf( "Zu wenig Speicher!\n\n" );
    exit( 1 );
    }

    // Berechnung starten
    for( ; b-c; )
    pf[ b++ ]=a/5;

    while(( g=2*c )!=0 ){
    for( b=c; d+=pf[ b ]*a, pf[ b ]=d%--g, d/=g--, --b; d*=b );
    c-=14;
    printf( "%.4d", e+d/a );
    e=d%a;
    d=0;
    }

    delete [ ] pf;
    }

  2. Antwort von nach 6 Tagen hilfreich
    Experiment.

    Mal ein Quadrat und da hinein einen
    Kreis auf ein Blatt Papier.

    wirf nun n- mal ein kleines Massestueckchen
    auf das Papier. Sei nun N die Anzahl
    der Quadrattreffer, K die Anzahl der
    Kreistreffer (N:=K), dann geht
    der Quotient K/N fuer genuegend viele
    Versuche gegen pi/4.

    Das ist dann sozusagen die
    Loesung mit einem Analogcomputer ;)


    Marco

    • Antwort von nach 6 Tagen hilfreich
      Nachtrag.

      Das kann man natuerlich auch
      mit einem Computer simulieren:

      10 N=0;K=0
      20 N=N+1;
      30 x=rnd
      40 y=rnd
      50 if x^2+y^2<1 then K=K+1
      60 p=4*K/N
      70 print p
      80 goto 20

      Marco

  3. Antwort von nach 5 Tagen hilfreich
    Re: pi ausrechnen

    wie kann man pi ausrechen ?
    ich will nicht das ergebnis sondern die
    formel dazu :)
    Maple macht das folgendermaßen:

    Und zwar ist das ganze bekannt als
    "Chudnovsky-Formel"

    mit den Konstanten

    c=6541681608/640320^(3/2)
    k=13591409/545140134
    l=640320

    ist

    1/pi=
    c* sum{ von i=0 bis unendl}_ [k+i](6i)!*(-1)^i/[(3k)!k!^3*l^(3i)]

    Viel Spaß beim rechnen!
    (Hoffe, ich habe mich nicht vertippt)

    Bis dann,
    Jan

    • Antwort von nach 5 Tagen hilfreich
      Korrektur!

      Ich habe ein paar "k"s und "i"s verwechselt!
      Anstatt 1/pi=
      c* sum{ von i=0 bis unendl}_
      [k+i](6i)!*(-1)^i/[(3k)!k!^3*l^(3i)]
      Muss es heißen 1/pi=
      c* sum{ von i=0 bis unendl}
      [k+i](6i)!*(-1)^i/[(3i)! i!^3*l^(3i)]
      Hoffe, jetzt stimmt es.

      Bis dann, Jan

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!