![]() |
Wie errechne ich die Zahl pi?
Hi! :gruebel:
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 |
Re: Wie errechne ich die Zahl pi?
:hi: 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:
Um zu runden lass im forum einfach mal suchen z.b Zahlen runden oder nur runden!
procedure TForm1.FormCreate(Sender: TObject);
begin Label1.caption := floattostr (Pi); end; Spider |
Re: Wie errechne ich die Zahl pi?
Das ganze nennt sich Monte-Carlo-Methode. Im [df]Monte-Carlo[/df] hab ich das mal erwähnt.
|
Re: Wie errechne ich die Zahl pi?
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. |
Re: Wie errechne ich die Zahl pi?
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. |
Re: Wie errechne ich die Zahl pi?
Delphi-Quellcode:
Durch Veränderung von Anzproben kann die Genauigkeit geändert werden.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; Code ist nicht geprüft, sollte aber funktionieren. Anm: die if Bedingung ist der Pythagoras-Satz. |
Re: Wie errechne ich die Zahl pi?
@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:
Sie ist jedoch nicht selbstkorrigierend, was aber keines Falls nötig ist, für nur 3 Stellen.
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; (Der Code stammt von ![]() |
Re: Wie errechne ich die Zahl pi?
@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? :wink: |
Re: Wie errechne ich die Zahl pi?
Vielen Dank an Alle! Ihr seid klasse! Ich denk, ich hab des jetzt so einigermaßen verstanden! DANKE!! Liebe Grüße Grid |
Re: Wie errechne ich die Zahl pi?
Ich will ja nix sagen, aber der erste Post:
Zitat:
Zitat:
|
Re: Wie errechne ich die Zahl pi?
Hallo tommie-lie,
wenn Du Dir die Posting-Uhrzeit anschaust, wirst Du feststellen, dass beide dies zur gleichen Zeit geschrieben haben. Somit Ist der Beitrag von Chewie keine Antwort auf Spider. :wall: |
Re: Wie errechne ich die Zahl pi?
ja, aber trotzdem ist es lustig.
Außerdem, selbst wenn der Beitrag keine Antwort auf Spider war, ist eine Antowrt "Das nennt sich Monte-Carlo-Methode" auf die Frage "Wie berechner ich Pi?" schon... abwegig. |
Re: Wie errechne ich die Zahl pi?
Pi braucht man nicht berechnen, es ist quasi eine Naturkonstante die sich niemals ändert.
Man kann lediglich diese Konstante durch Berechnungen nachweisen und in seiner Art bestätigen :stupid: |
Re: Wie errechne ich die Zahl pi?
@tommie-lie: Kreis + Quadrat + zufällig fallende Tröpfchen ==> Monte-Carlo-Methode anwenden.
@Touchdown: Du hast zwar Recht, aber man kann mit der Berechnung wunderbar algorithmisches Programmieren lernen. |
Re: Wie errechne ich die Zahl pi?
Moin Touchdown,
Zitat:
|
Re: Wie errechne ich die Zahl pi?
Zitat:
1.) ist Pi tatsächliche eine einmalige Konstante die NICHT durch andere Konstanten ersetzt werden kann 2.) wenn Pi eine transzendale Zahl ist dann kann sie garnicht konstant sein, als Zahl an sich. Denn man kann unendlich viele Stellen von Pi berechnen und trotzdem findet man kein Ende. Beides ist bisher noch nicht bewiesen wurden ! Aber, deine Aussage ist schon richtig, es ist nur eine Frage inwieweit man sich auf die bestehenden Definitionen stützt. Gruß Hagen |
Re: Wie errechne ich die Zahl pi?
Zitat:
|
Re: Wie errechne ich die Zahl pi?
Zitat:
|
Re: Wie errechne ich die Zahl pi?
Zitat:
Hmm... tatsächlich. Na dann heißt sowas tatsächlich Monte-Carlo. Ich sollte vielleicht die Hilfestellungen vom Lehrer besser lesen, könnte hilfreich sein :mrgreen: |
Re: Wie errechne ich die Zahl pi?
Habt ihr etwa in Mathe nicht aufgepaßt ? :lol: Alles aber ohne Gewähr: pi/4=1-1/3+1/5-1/7+- usw. ohne Ende. Pi hat also unendlich viele Stellen und kann mit unseren Zahlen nur angenähert berechnet werden, durch eine solche endliche Reihe, die eben irgendwann aufhört, was aber auch falsch ist. Die ist in Wirklichkeit unendlich.
|
Re: Wie errechne ich die Zahl pi?
Klar. Wir kennen nur Näherungsverfahren für Pi,und die Frage, ob Pi einen exakten Wert hat oder unendlich angenähert werden kann/muss, werden wohl eher die Theoretiker als die Praktiker entscheiden (falls sie es nicht schon getan haben :gruebel:).
|
Re: Wie errechne ich die Zahl pi?
Pi ist durch eine unendliche Summe darstellbar!
|
Re: Wie errechne ich die Zahl pi?
Was hab ich denn gesagt ? Durch eine unendliche Reihe und das ist eben eine Summe über die Elemente. Da die in diesem Fall immer kleiner werden ergibt sich ein Grenzwert und es wächst nicht ins Unendliche. :mrgreen:
|
Re: Wie errechne ich die Zahl pi?
Zitat:
|
Re: Wie errechne ich die Zahl pi?
Zitat:
|
Re: Wie errechne ich die Zahl pi?
Zitat:
|
Re: Wie errechne ich die Zahl pi?
Zitat:
|
Re: Wie errechne ich die Zahl pi?
Gut. :wink:
Auf jeden Fall ist diese Reihe schlussendlich genau gleich pi/4. |
Re: Wie errechne ich die Zahl pi?
Es gibt eine ganze Menge Algorithmen zum Ausrechnen von PI.
Irgendwo habe ich eine Version, die je Umlauf des Algorithmus 4 Stellen auf einmal ausspuckt. Ziemlich kurz und heftig schnell. |
Re: Wie errechne ich die Zahl pi?
Zitat:
Hagen, Du hast ist in einem anderen Thread erwähnt, dass Du eine Langzahlbibiothek geschrieben hast. Wollte fragen, ob Du die irgendwie zur Verfügung stellen kannst, bitte. Hintergrund meiner Frage: ich schreibe an einer Arbeit über pi: ![]() |
Re: Wie errechne ich die Zahl pi?
|
Re: Wie errechne ich die Zahl pi?
![]() Ein Programm zum Berechnen von PI nach der Monte-Carlo Methode. Darauß sollte es ganz gut ersichtlich sein. Den Source kann ich dir schicken. Gruß (Achtung: Die Monte-Carlo Methode schätzt! ) |
Re: Wie errechne ich die Zahl pi?
@Hagen: Ok, damit dürfte ich die nächsten Jahre wohl beschäftigt sein ;-) Danke!
@Moritz: auch an Dich vielen Dank. Prog ist prima. Würdest Du mir die Quelldateien bitte mailen? |
Re: Wie errechne ich die Zahl pi?
also wieso benutzt ihr ein quadrat mit a=2*r???
ich habn viertelkreis genommen.... einfach r=1 und a=r
Delphi-Quellcode:
fäddig...
while running do
begin x:=random; y:=random; if x²+y²<1 then inc(pin); inc(p); Label1.Caption:=floattostr(4*pin/p); end; |
Re: Wie errechne ich die Zahl pi?
Zitat:
Zitat:
Es ist im Prinzip sowas von egal ob man 'nen ganzen Kreis nimmt, 'nen Viertelkreis oder einen Halbkreis, sofern man weiß von wo bis wo die x- und y-Werte gehen können um Sinn zu ergeben. |
Re: Wie errechne ich die Zahl pi?
naja, aber wie prüfst du denn ob die sich im kreis befinden?
is das nicht wesentlich komplizierter? |
Re: Wie errechne ich die Zahl pi?
Naja, eigentlich nicht. Ich suche mir Zufallszahlen zwischen -1 und 1 (Random(2)-1), quadriere sie, addiere sie und ziehe die Wurzel von, und wenn das Ergebnis <=1 ist, ist der Punkt im Kreis. Was anderes als was du machst ist es auch nicht ;-)
|
Re: Wie errechne ich die Zahl pi?
/me hat grad' mal ein wenig rumgerechnet und /me merkt grade, daß alles was er gesagt hat Schwachsinn war und /me hätte gerne, daß das alles gaaanz schnell vergessen wird...
|
Re: Wie errechne ich die Zahl pi?
Hallo,
was tut ihr da eigentlich? Ihr nehmt irgendeinem faulen Schüler die Arbeit und das Denken ab. Ist dieses Forum dafür gedacht? Ein Tip: Monte Carlo Methode hätte voll gereicht. Muss das sein, dass ihr ihm auch noch die Lösung präsentiert? Ich jedenfalls frage meine Auszubildenden ab und wehe da ist so ein faules Individuum. Rainer |
Re: Wie errechne ich die Zahl pi?
:gruebel:
Da regst du dich ein bissl spät auf. Der Thread ist über ein Jahr alt und wurde nur von eF-eS für seine Recherche wieder aufgewärmt. Die Hausaufgabe wird der Ersteller wohl mittlerweile abgegeben haben ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz