Ich habe vor, PI per Monte-Carlo-Methode zu berechnen. Aber leider weiß ich nicht genau, wie ich abrfagen soll, ob der Punkt im Kreis oder außerhalb liegt.
Programmieren - alles kontrollieren 4.938 Themen, 20.667 Beiträge
Monte Carlo Methode?
Du meinst zufällige Punkte (Regentropfen) in ein Einheitsquadrate 'tropfen' lassen und aus dem verhältinis der Treffer/ Gesamt PI folgern?
Kurzantwort:
Über die Entfernung zum Kreismittelpunkt!
Langantwort:
Ok du hast ein Quadrat mit Seitenlänge 1 in dessen eine Ecke der Mittelpunkt eines Kreises mit Radius 1 ist. Eine Quadratseite nennst du X die andere Y. Den Kreis legst du in (X;Y) = (0,0) an.
Ob ein Punkt (X;Y) = ([0,1];[0,1]) im Kreis liegt kannst du über die Entfernung des Punkts zum Mittelpunkt des Kreises (0;0) feststellen.
Die Entfernung r eines Punktes (x;y) vom Kreismittelpunkt ist
sqrt(x*x + y*y);
Für r Für r = 1 liegt der Punkt auf der Kreislinie *
Für r > 1 liegt der Punkt ausserhalb des Kreises
Meines Wissens werden die mit * gekennzeichneten Fälle zusammengefasst zu den Erfolgsfällen.
Ein Kreis mit Radius 1 hat die Fläche PI. Da du hier aber nur auf ein Kreisviertel getropft hast ist auch die Erfolgsfläche PI/4.
Das Verhältnis der Erfolgsfälle zu den Gesamttropfen ist dasselbe wie das Verhältnis der Erfolgsfläche zum Quadrat:
Erfolg PI
-------- = ------
Gesamt 4* 1
4* Erfolg
PI = -------------
Gesamt
Meld' dich einfach wenn ich das ganze noch in C++ Code verpacken soll
CU
Dreamforger