Zufallsregen

Status
Nicht offen für weitere Antworten.

Schrubber

Bekanntes Mitglied
Hallo Leutz,

Ich habe heute in der Schule folgende Aufgabe bekommen:

Pi_statistisch.png


Dabei sollten wir auf einen Viertelkreis einen Zufallsregen erzeugen, der zufällig (nach Math.Random()) Punkte drauf macht und dann die Annäherung an Pi bestimmt. Also das Verhältnix zwischen den Punkten IM Kreis und AUßERHALB des Kreises.

Nun kam mein Klassenkollege auf die Idee, den Satz des Pythagoras zu nutzen, die Hypothenuse zu errechnen und alle Zahlen, die weiter von Punkt 0 entfernd sind als c (Die Hypothenuse) als außen, alle niedrigeren als Innen zu zählen.

Da ist mir folgende Frage aufgefallen:

Wäre der Wert der Verhältnixrechnung des Verschnitts im Verhältnix zum Flächeninhalt des Kreises nicht genauer?


Folgende Codezeilen hab ich mir dafür überlegt.

Java:
import java.io.*;

public class Zufallsregen2 {

	public static void main(String[] args) throws IOException
	{
		double x = 1;	
		double r = 0.5;
		double pi = 3.1415926535;
		double flaechekreis = (r*r)*pi;
		double flaechequadrat = x*x;
		double rest = flaechequadrat - flaechekreis;
		double annaeherung = flaechekreis / rest;
		
		System.out.println("Pi = " + pi);
		System.out.println("Rest = " + rest);
		System.out.println("Annäherung = " + annaeherung);
		
		
	}
}

Meine Frage:
Ich komme bei der Ausgabe auf einen Näherungswert von:
3.659792365838053

das ist aber Nicht Pi, da Pi folgende Zahlenfolge hat:


Wo ist mein Denkfehler / Was hab ich falsch gemacht?

Danke im vorraus,
Schrubber
 

Cola_Colin

Top Contributor
Flächenkreise berechnet die Fläche das ganzen Kreises, doch auf deiner Graphik ist der Kreis doch gar nicht komplett, sondern nur ein Viertelkreis?

Sowieso, soweit ich mich richtig erinnere ist das Ziel dieses Verfahrens PI zu bestimmen, das in der Berechnung bereits PI verwendet wird ist sicher nicht richtig. Die Idee mit dem Dreieck wird sicher auch nicht zu einem guten Ergebnis führen, oder doch ? Ich kanns mir nicht vorstellen.

Ich hab früher mal in Delphi diese abfrage verwendet um zu testen, ob ein Punkt in dem Kreis liegt:
if sqr(x) + sqr(y) < (ResX*ResY) then...
Also X² + Y² < Gesamtfläche.

Wie ich damals auf die Formel gekommen bin hab ich gerade vergessen o_O
 

Schrubber

Bekanntes Mitglied
Auch wenn ich dann die flaechekreis / 4 rechne, kommt das gleiche heraus.

Aber die Warscheinlichkeit ist NICHT Pi ....
 

icarus2

Top Contributor
Ich würde ja folgendes empfehlen:

Du machst 2 Membervariablen, z.B. int insideCircle und int outsideCircle.

Dann machst du mit Math.random() immer einen neuen Punkt und überprüfst sogleich, ob dieser innerhalb des Kreises liegt. Wenn ja, insideCircle++, wenn nicht outsideCirce++.

Ob der Punkt innerhalb des Kreies ist lässt sich tatsächlich sehr leicht mit Pythagoras berechnen. Einfach den Abstand zum Kreismittelpuntk berechnen mit Math.sqrt(x^2 - y^2).
 

Schrubber

Bekanntes Mitglied
Aber trotzdem ist doch das Verhältnix von Kreis und Rest ist 3.659792365838053, also sollte auch die Chance bei 3,65 liegen?
 

musiKk

Top Contributor
Es heißt immer noch Verhältnis, oder aus welchem Land kommst Du? Immerhin hast Du es damit schon auf #3 bei Google geschafft...

Ich verstehe Deine Rechnung nicht so ganz. Gehen wir mal vom Einheitskreis aus.
Die Kreisfläche des Viertelkreises ist PI/4. Die Fläche des Viertelquadrats ist 1/4. Das Verhältnis Kreis/Viereck ist demnach
(PI/4) / (1/4) = (PI/4) * 4 = PI.
 

drAb17

Mitglied
Hallo.

Ich habe einen völlig anderen Ansatz. Kann ihn aber momentan nicht weiterverfolgen, weil ich selber für die Uni Sachen machen muss.


Nimm den Einheitskreis, dann müsste
x^2+y^2 = 1 die Linie des Kreises sein. wenn die Summe kleiner 1 ist bist du innerhalb sonst ausserhalb.

wie gesagt ist nur ne idee... kann völlig falsch sein.

greez


[EDIT]

habe in deinem Programmcode gesehen, dass du pi benötigst um eine Annäherung an pi zu berechenen. ich denke nich, dass das der Sinn der Sache ist????? wenn du pi kennst wieso solltest du es dann noch annähern?
 
Zuletzt bearbeitet:

Schumi

Bekanntes Mitglied
Ich verstehe Deine Rechnung nicht so ganz. Gehen wir mal vom Einheitskreis aus.
Die Kreisfläche des Viertelkreises ist PI/4. Die Fläche des Viertelquadrats ist 1/4. Das Verhältnis Kreis/Viereck ist demnach
(PI/4) / (1/4) = (PI/4) * 4 = PI.

Da hast Du Dich um den Faktor 4 verrechnet, da das Quadrat die Fläche 1 hat. (Seitenlänge ist ja gerade 1, wenn der Radius des Kreises auch 1 ist) .

folgendes klappt eigentlich ganz gut:

Java:
	public static double estimatePi(int rounds){
		double x;
		double y;
		int out = 0;
		int in = 0;
		for(int i=0; i<rounds;i++){
			x = Math.random();
			y = Math.random();
			if(Math.sqrt(x*x + y*y) <= 1)  in++; 
			else out++;
		}
		return 4*((double)in/(in+out));
	}
 

Schumi

Bekanntes Mitglied
Hallo Leutz,


Java:
import java.io.*;

public class Zufallsregen2 {

	public static void main(String[] args) throws IOException
	{
		double x = 1;	
		double r = 0.5;
		double pi = 3.1415926535;
		double flaechekreis = (r*r)*pi;
		double flaechequadrat = x*x;
		double rest = flaechequadrat - flaechekreis;
		double annaeherung = flaechekreis / rest;
		
		System.out.println("Pi = " + pi);
		System.out.println("Rest = " + rest);
		System.out.println("Annäherung = " + annaeherung);
		
		
	}
}




Wo ist mein Denkfehler / Was hab ich falsch gemacht?

Danke im vorraus,
Schrubber

Deine Fehler: wenn x = 1 ist, ist auch r = 1. Außerdem musst Du das Verhältnis von Kreisfläche und Gesamt- (also Quadrat)fläche berechnen:
Java:
	public static void pi(){ 
		double x = 1;   
		double r = 1;
		double pi = 3.1415926535;
		double flaechekreis = (r*r)*pi / 4;
		double flaechequadrat = x*x;
		double rest = flaechequadrat - flaechekreis;
		double annaeherung = 4 * flaechekreis / flaechequadrat;

		System.out.println("Pi = " + pi);
		System.out.println("Rest = " + rest);
		System.out.println("Annäherung = " + annaeherung);
	}
Ausgabe:
Pi = 3.1415926535
Rest = -2.1415926535
Annäherung = 3.1415926535

Aber das berechnet ja Pi auch nur aus Pi.

Eta: Auch nochmal den Faktor 4 hereingebracht (der betrachtete Kreis ist ja nur ein 1/4 Kreis, allerdings bekommt man bei dem Verhältnis auch nur 1/4 PI heraus. Nur stimmt dann die Ausgabe des Restes:
Pi = 3.1415926535
Rest = 0.214601836625
Annäherung = 3.1415926535
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.

Oben