Chrischaaan: Math.PI erweitern???

hallo

wenn ich folgenden quellcode compilliere und dann aufrufe erhalte ich nur 3,141592653589793

public class Mathe {
  public static void main (String args[]){
    System.out.println(Math.PI);
  }
}

wie kann ich machen das der mir mehr stellen zeigt? 100 oder noch mehr.oder das ich eingeben kann/muß wieviel stellen der anzeigen soll?

bye,christian.

  1. Servus,

    wenn ich folgenden quellcode compilliere und dann aufrufe erhalte ich nur 3,141592653589793

    Nun, ich weiß ja nicht, weshalb Dir eine Genauigkeit von 15 Nachkommastellen nicht ausreicht, aber bitte...

    http://www.uni-leipzig.de/~sma/pi_einfuehrung/ hier findest Du eine Einführung in die verschiedenen Methoden, Pi exakter zu berechnen.

    Zu der Monte-Carlo Methode kann ich Dir sogar ein fertiges Java-Progrämmchen geben. Wenn Du allerdings PI sinnvoll verwenden willst, solltest Du lieber eine andere Methode wählen, da diese nicht sehr schnell gegen PI konvergiert. Es werden also viele Berechnungen durchgeführt, der Rechner qualmt und PI ist immer noch nicht sehr "genau".

    import java.math.*;

    public class mc_pi {

    public static void main(String args[]) {

    int schritte = 10000;
          int treffer = 0;
          double radius = 1.0;
          double x, y, entfernung, pi;

    for(int i=0; i < schritte; i++) {
             x = Math.random();
             y = Math.random();
             entfernung = Math.sqrt(x*x + y*y);
             if( entfernung <= radius ) {
                treffer = treffer + 1;
             }
          }
          pi = 4 * ((double)treffer / (double)schritte);
          System.out.println(" Monte Carlo Schritte: "+ schritte);
          System.out.println(" davan Treffer: "+ treffer);
          System.out.println(" Pi: "+ pi);
       }
    }

    Viel Spaß...

    Alex :)

  2. Hallo,

    wenn ich folgenden quellcode compilliere und dann aufrufe erhalte ich nur 3,141592653589793

    public class Mathe {
      public static void main (String args[]){
        System.out.println(Math.PI);
      }
    }

    wie kann ich machen das der mir mehr stellen zeigt? 100 oder noch mehr.oder das ich eingeben kann/muß wieviel stellen der anzeigen soll?

    Das ist ein fester Wert, mehr ist nicht drin. Wenn Du mehr möchtest, mußt Du das selber rechnen. Z.B.: mittels 4arctan(1.0) (ist bei 100 Stellen ausreichend schnell)
    http://mzurnieden.bei.t-online.de/arctan.png
    Oder halt als String festlegen. Der muß dann aber wieder zur Zahl zurückgeführt werden, das kann die Angelegenheit ganz schön lahm machen.
    Hier gibt es z.B. Pi auf eine Mio Stellen genau:
    <http//mzurnieden.bei.t-online.de/pi.bz2> ( 474246 Bytes)
    (falls Du mit Windows arbeitest: bzip2.exe gibt's bei allerhand Stellen, frag einfach Google nach der nächstgelegenen ;-)
    Ein Auszug davon (rund 1000 Stellen) zum bequemem C&P gibt's hier:
    http://mzurnieden.bei.t-online.de/pi.html

    Ein Programm zum berechnen gibt's hier:
    http://www.jjj.de/
    Damit sollten auf den modenen PCs auch 100 Mio Stellen in kürzerer Zeit berechenbar sein.

    so short

    Christoph Zurnieden

    PS:
    43 Nachkommastellen würden schon reichen, den Umfang des Universums auf 1 Atom genau auszurechnen ;-)
    CZ

    1. Hallo,

      Zu blöd ein Bildchen einzubinden ;-)

      Das ist ein fester Wert, mehr ist nicht drin. Wenn Du mehr möchtest, mußt Du das selber rechnen. Z.B.: mittels 4arctan(1.0) (ist bei 100 Stellen ausreichend schnell)
      <img src="http://mzurnieden.bei.t-online.de/arctan.png" border=0 alt="">

      so short

      Christph Zurnieden

  3. hallo

    wenn ich folgenden quellcode compilliere und dann aufrufe erhalte ich nur 3,141592653589793

    public class Mathe {
      public static void main (String args[]){
        System.out.println(Math.PI);
      }
    }

    wie kann ich machen das der mir mehr stellen zeigt? 100 oder noch mehr.oder das ich eingeben kann/muß wieviel stellen der anzeigen soll?

    bye,christian.

    vieleicht sollte ich euch über mein vorhaben aufklären.
    ich wollte ein programm schreiben das den wert PI ausgibt und zwar auf so viele stellen genau wie es der benutzer vorher eingegeben hat.
    (übrigens als applikation)

    nun noch mehr fragen dazu: wie mach ich unter DOS eine eingabe(in java) und wozu außer zur kreisberechnung kann man PI noch gebrauchen??

    1. Moin,

      vieleicht sollte ich euch über mein vorhaben aufklären.
      ich wollte ein programm schreiben das den wert PI ausgibt und zwar auf so viele stellen genau wie es der benutzer vorher eingegeben hat.
      (übrigens als applikation)

      Na, dann hast Du doch schon ein paar Lösungsvorschläge bekommen. Wie Du die nun Programmiertechnisch umsetzt, bleibt Dir überlassen.
      Bedenke, daß Du aber auch Sicherungsroutinen einbaust. Denn wenn ich z.B. nach der Monte Carlo Methode 10 Mio. Schritte berechnen will, kann das schon so seine Stunden dauern oder den Rechner abstürzen lassen.

      wozu außer zur kreisberechnung kann man PI noch gebrauchen??

      Ach, lass Chrischaaan, das ist ein zu weites Feld.
      Pi ist recht universel. Wenn Du z.B. Kurven im Raum hat, die irgendwie komisch da her laufen und Rundungen haben, kann man diese u.a. mit den Trigonometrischen Funktionen (sin, cos usw.) beschreiben.
      Und wenn Du nun anstelle des Gradmaßes im Bogenmaß rechnest, hast Du keine Alternative zu Pi.

      Und glaube mir, die tri. Funktionen werden in der Mathematik und Technik sehr häufig verwendet, und damit auch Pi. Denke nur mal an Schwingungen, Wellen (z.B. Lichtwellen, Schallwellen), unsere Wechselstromnetz.

      Grüße...

      Alex :)