AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie errechne ich die Zahl pi?

Ein Thema von GridGirl · begonnen am 8. Okt 2003 · letzter Beitrag vom 26. Okt 2004
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
GridGirl

Registriert seit: 8. Okt 2003
2 Beiträge
 
#1

Wie errechne ich die Zahl pi?

  Alt 8. Okt 2003, 14:30
Hi!
Jetzt haltet mich bitte net für total doof, aber ich hab echt keine Ahnung von dem ganzen!
Könnte mir jemand vielleicht erklären, wie ich die Zahl Pi mit nem Programm ausrechnen kann? Es sollen nur 3 Stellen hinterm Komma aus gegeben werden. Und unser Lehrer hat uns Folgende Hilfestellung gegeben: Wenn wir nen Kreis in einem Quatrat haben und dann Tröpfchen drauf regnen lassen und dann irgendwie das Verhältis ausrechnen.
Es wär voll lieb, wenn mir jemand helfen könnte!
Grid
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Wie errechne ich die Zahl pi?

  Alt 8. Okt 2003, 14:55
Willkommen in Delphi-Praxis!

Ne doof bist du net!

zum die Zahl PI erechnen mach dir ein Label auf die Form und folgenden code
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Label1.caption := floattostr (Pi);
end;
Um zu runden lass im forum einfach mal suchen z.b Zahlen runden oder nur runden!


Spider
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Wie errechne ich die Zahl pi?

  Alt 8. Okt 2003, 14:55
Das ganze nennt sich Monte-Carlo-Methode. Im [df]Monte-Carlo[/df] hab ich das mal erwähnt.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Wie errechne ich die Zahl pi?

  Alt 8. Okt 2003, 15:00
Moin Grid,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Die Hilfestellung, die euch der Leherer gegeben hat beschreibt John von Neumanns "Monte Carlo Methode".
Sie dient zur Berechnung von Flächeninhalten unregelmässig geformter Flächen.
Das Prinzip basiert darauf, dass das Verhältnis der Punkte die gesamt verteilt wurden, zu denen die sich in der gesuchten Fläche befinden, genauso verhält, wie Gesamtfläche zum Flächeninhalt der gesuchten Fläche, wobei man natürlich die zu berechnende Fläche, mit einer leicht zu berechnenden Figur, eben einem Quadrat oder Rechteck umgibt. Diese sollte dann auch so knapp wie möglich die unbekannte Fläche umschliessen. Je mehr Punkte man verteilt umso genauer wird das Ergebnis.
Die Punkte werden hierbei zufällig verteilt (deshalb "Monte Carlo Methode", mit das bekannteste Spielcasino).

Code:
      Gesamte Anzahl Punkte           Flächeninhalt der umschliessenden Fläche
------------------------------------ = ----------------------------------------
Punkte in der unregelmässigen Fläche         gesuchter Flächeninhalt
=>

Code:
                          (Flächeninhalt der umschliessenden Fläche) * (Punkte in der unregelmässigen Fläche)
gesuchter Flächeninhalt = -----------------------------------------------------------------------------------
                                                       (Gesamte Anzahl Punkte)

Was Dir jetzt noch fehlt:
Die Punkte verteilen, und dabei zählen wieviele im Kreis liegen.
Eintragen der Flächenberechnungen für Kreis und Quadrat, und dieses nach pi umformen.

Ich hoffe, das hilft erst einmal weiter.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Honie

Registriert seit: 27. Sep 2003
Ort: Bielefeld
39 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Wie errechne ich die Zahl pi?

  Alt 8. Okt 2003, 15:13
Theorie

1. Stell Dir den Einheitskreis mit r=1 vor
Hierfür hast Du einen Flächeninhalt von pi*r² wobei r²=1²=1 also gleich pi ist.

2. Stell Dir jetzt das kleinste Quadrat vor, in das der Kreis vollständig hereinpaßt.
Dieses Quadrat hat eine Kantenlänge von 2*r und somit einen
Flächeninhalt von (2*r)² = (2*1)² = 2² = 4 ist.

3. Wenn Du jetzt per Zufall Punkte innerhalb des Quadrates auswählst (es regnet) und zählst wieviele
Punkte auch innerhalb des Kreises liegen kannst Du folgende Gleichung aufstellen:

Pi/4 = (Anzahl der Punkte im Kreis)/(Gesamtzahl der Punkte)

dies nach Pi aufgelöst ergibt die Lösung:

Pi := 4*Anzahl der Punkte im Kreis / Gesamtzahl der Punkte.

4. Anmerkung: Je mehr Punkte ausgewählt werden (stärker es regnet), desto genauer wird das Ergebnis!

Praktische Umsetzung folgt gleich.
  Mit Zitat antworten Zitat
Honie

Registriert seit: 27. Sep 2003
Ort: Bielefeld
39 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Wie errechne ich die Zahl pi?

  Alt 8. Okt 2003, 15:21
Delphi-Quellcode:

  function pi: real;

  const
    anzproben = 1000;

  var
    x,y: real;
    i,treffer: integer;
    

  begin
    treffer := 0;
    for i:= 1 to anzproben do begin
      x := random; // ermitteln des Zufallspunktes
      y := random;
      if (x*x)+(y*y) < 1 then
        inc(treffer);
    end;
    result := 4*treffer/anzproben
  end;
Durch Veränderung von Anzproben kann die Genauigkeit geändert werden.

Code ist nicht geprüft, sollte aber funktionieren.

Anm: die if Bedingung ist der Pythagoras-Satz.
  Mit Zitat antworten Zitat
Dagon

Registriert seit: 13. Jul 2003
505 Beiträge
 
Delphi 7 Professional
 
#7

Re: Wie errechne ich die Zahl pi?

  Alt 8. Okt 2003, 15:33
@Honie: Deine Variante funktioniert zwar, aber sie ist sehr ungenau und erfordert bei grossem anzproben sehr viel Rechenzeit.

Hier ist eine extrem schnelle Variante nach Borwein:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var a, b, aalt: Extended;
    p: array[0..5] of Extended;
    i:integer;
begin
  a:=sqrt(2);
  b:=0;
  p[0]:=2+a;
  i:=0;
  repeat
    aalt:=a;
    a := 1/2*(sqrt(aalt) + 1/sqrt(aalt));
    b := sqrt(aalt)*(b+1)/(b+aalt);
    p[i+1] := p[i]*b*(1+a)/(1+b);
    inc(i);
  until i>5;
end;
Sie ist jedoch nicht selbstkorrigierend, was aber keines Falls nötig ist, für nur 3 Stellen.

(Der Code stammt von http://joachim.mohr.rottenburg.bei.t-online.de)
  Mit Zitat antworten Zitat
Honie

Registriert seit: 27. Sep 2003
Ort: Bielefeld
39 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Wie errechne ich die Zahl pi?

  Alt 8. Okt 2003, 15:40
@the_master: Da hast Du natürlich recht, aber ich bin von der Vorgabe Ihres Lehrers
ausgegangen, der ja den Lösungsweg anschaulich vorbereitet hat.

BTW: Hast Du den Lösungsweg in Deinem Code verstanden und kannst erklären warum
das Ergebnis Pi ist?
  Mit Zitat antworten Zitat
GridGirl

Registriert seit: 8. Okt 2003
2 Beiträge
 
#9

Re: Wie errechne ich die Zahl pi?

  Alt 8. Okt 2003, 17:07

Vielen Dank an Alle!
Ihr seid klasse!
Ich denk, ich hab des jetzt so einigermaßen verstanden!
DANKE!!
Liebe Grüße
Grid
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#10

Re: Wie errechne ich die Zahl pi?

  Alt 8. Okt 2003, 18:47
Ich will ja nix sagen, aber der erste Post:
Zitat von Spider:
zum die Zahl PI erechnen mach dir ein Label auf die Form und folgenden code
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Label1.caption := floattostr (Pi);
end;
und der Zweite:
Zitat von Chewie:
Das ganze nennt sich Monte-Carlo-Methode. Im [df]MONTE-CARLO[/df] hab ich das mal erwähnt.
geben mir irgendwie zu denken
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz