AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Monte Carlo trifft PI

Ein Thema von Delphi-Padawan · begonnen am 21. Jan 2005 · letzter Beitrag vom 24. Jan 2005
Antwort Antwort
Seite 2 von 3     12 3   
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#11

Re: Monte Carlo trifft PI

  Alt 24. Jan 2005, 13:41
Zitat von Nicolai1605:
als ein paar zufällige Punkte...
Mit der Monte Carlo Methode kannst du Pi beliebig genau bestimmen. Musst nur die Anzahl deiner Tests erhöhen
Beim Zählen der Pixel klappt das nicht, da du nur x*y Pixel hast.
  Mit Zitat antworten Zitat
Nicolai1234

Registriert seit: 21. Feb 2004
1.008 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Monte Carlo trifft PI

  Alt 24. Jan 2005, 14:01
Aber wenn die Punkte gegen unendlich laufen, ist doch der Wert genau der, der bei meiner Pixelrechnung rauskommt, oder?
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#13

Re: Monte Carlo trifft PI

  Alt 24. Jan 2005, 14:03
Zitat von Nicolai1605:
Aber wenn die Punkte gegen unendlich laufen
Hast du denn auch unendlich Speicher um dein Schachbrett im Speicher zu halten ?
  Mit Zitat antworten Zitat
Nicolai1234

Registriert seit: 21. Feb 2004
1.008 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Monte Carlo trifft PI

  Alt 24. Jan 2005, 14:05
Zitat von Jelly:
Zitat von Nicolai1605:
Aber wenn die Punkte gegen unendlich laufen
Hast du denn auch unendlich Speicher um dein Schachbrett im Speicher zu halten ?
?

Erlär doch mal, warum meine Annahme falsch ist. Wenn ich das oben genannte Beispiel durchrechnen lasse, dann komme ich wirklich nur auf den Wert, der auch bei den Pixeln rauskommt. egal wie viele Millionen mal ich da Punkte raufmache...
WO liegt denn da mein Denkfehler?
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#15

Re: Monte Carlo trifft PI

  Alt 24. Jan 2005, 14:15
Stell dir ein Kasten von 10x10 vor, sprich 100 Pixel. Selbst wenn du alle Pixel zählst, wirst du nur 31 schwarze (damit mein ich Pixel innerhalb des Kreises) und für den Rest weisse finden. Damit wirst du Pi NIE genauer wie 3.1 bestimmen können. (Pi=schwarze/Gesamtzahl)

Oder hab ich dich falsch verstanden, wie du über das Canvas Pi bestimmen willst.
  Mit Zitat antworten Zitat
Nicolai1234

Registriert seit: 21. Feb 2004
1.008 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Monte Carlo trifft PI

  Alt 24. Jan 2005, 14:21
Ne, hast du nicht, aber ganz oben hat eienr gefragt, wie er das mit Canvas macht...


Was brauch man denn für eine Größe um Pi genauer zu bestimmen?
  Mit Zitat antworten Zitat
Tortus

Registriert seit: 15. Nov 2003
Ort: Gescher
47 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Monte Carlo trifft PI

  Alt 24. Jan 2005, 14:22
Zitat von Nicolai1605:
Zitat von Jelly:
Zitat von Nicolai1605:
Aber wenn die Punkte gegen unendlich laufen
Hast du denn auch unendlich Speicher um dein Schachbrett im Speicher zu halten ?
?

Erlär doch mal, warum meine Annahme falsch ist. Wenn ich das oben genannte Beispiel durchrechnen lasse, dann komme ich wirklich nur auf den Wert, der auch bei den Pixeln rauskommt. egal wie viele Millionen mal ich da Punkte raufmache...
WO liegt denn da mein Denkfehler?
Ich glaube, deine Lösung ist auch richtig.
Dein Denkfehler (und gleichzeitig der Vorteil der Monte-Carlo-Methode) besteht darin, das bei deiner Pixelbasierenden Lösung das Canvas seeehr groß sein müsste, um ein brauchbares ergebnis zu liefern, da ein Pixel ja bekanntlich entweder schwarz oder weiß ist, aber nicht halb schwarz, halb weiß oder so.
Bei der Monte-Carlo-Methode hingegen kann man Dezimalzahlen einsetzen, die die Ergebnisse des Zufallszahlengenerators sind.

/E: Herrlich, bin ich wieder zu langsam gewesen, und ich glaube sogar am Thema vorbei.

Dafür gibts hier jetzt mal eine ganz einfache Übersetzung des Vorschlags von Wikipedia zur Monte-Carlo Methode:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  tropfenzahl,
  innerhalb,
  gesamt: Integer;
  dotx,
  doty,
  piwert: Extended;
begin
  tropfenzahl := StrToInt(Edit1.Text);
  innerhalb := 0;
  gesamt := tropfenzahl;
  Progressbar1.Max := tropfenzahl;
  while(tropfenzahl>0) do
  begin
    Randomize;
    dotx := 2 * Random-1;
    doty := 2 * Random-1;
    if(Sqrt(dotx*dotx + doty*doty) <= 1) then
    begin
      innerhalb := innerhalb +1;
    end;
    tropfenzahl := tropfenzahl -1;
    Progressbar1.Position := Gesamt - tropfenzahl;
    Application.ProcessMessages;
  end;
  Edit2.Text := FloatToStr(4*innerhalb/gesamt);
end;
Wie gesagt, einfach aus meinem Testprogrämmle kopiert, und ohne weiteres Tuning
Thorsten Lanfer
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#18

Re: Monte Carlo trifft PI

  Alt 24. Jan 2005, 16:39
@jelly
@Nicolai

Wenn man das Ergebnis möglichst genau haben will, muss man sich vom Canvas loslösen und die Sache rein arithmetisch/analytisch betrachten. Damit könnte man auch die Genauigkeit beliebig erhöhen, vorausgesetzt man lässt das Programm lang genug laufen.

MfG
Binärbaum

//Edit: Rechtschreibfehler korrigiert
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#19

Re: Monte Carlo trifft PI

  Alt 24. Jan 2005, 17:03
Zitat von Binärbaum:
Damit könnte man auch die Genauigkeit beliebig erhöhen, vorausgesetzt man lässt das Programm lang genug laufen.
Hab ich was anderes behauptet
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#20

Re: Monte Carlo trifft PI

  Alt 24. Jan 2005, 17:11
Zitat von Jelly:
Zitat von Binärbaum:
Damit könnte man auch die Genauigkeit beliebig erhöhen, vorausgesetzt man lässt das Programm lang genug laufen.
Hab ich was anderes behauptet
Irgendwie schon, weil du da von Canvas geredet hast, und ein Canvas -auch wenn er noch so groß ist und noch so viele Pixel hat- begrenzt ist, und damit sind der Genauigkeit gewisse Grenzen gesetzt (vom Speicherbadarf des Canvas mal abgesehen).
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:45 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