Programmieren - alles kontrollieren 4.938 Themen, 20.667 Beiträge

VC++ & PI & Monte-Carlo-Variante

(Anonym) / 4 Antworten / Flachansicht Nickles

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.

bei Antwort benachrichtigen
Dreamforger (Anonym) „VC++ & PI & Monte-Carlo-Variante“
Optionen

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

bei Antwort benachrichtigen