
Ich hab aber ne "einfache" Frage ^^. Ich möchte es so machen ,dass das Prog. Pi erechnet. Daher meine Frage -> wie rechnet man Pi ?
Gruß Fusselohr
Code: Alles auswählen
public static double berechne_pi(int tropfenzahl) {
double pi = 0;
int innerhalb = 0;
int gesamt = tropfenzahl;
while (tropfenzahl > 0) { // generiere Tropfen und addiere je nach Zugehörigkeit
double dotx = 2 * Math.random() - 1;
double doty = 2 * Math.random() - 1;
if (dotx*dotx + doty*doty <= 1) {
// Punkt liegt innerhalb des Kreises
innerhalb++;
} else {
// Punkt liegt außerhalb des Kreises
}
tropfenzahl--;
}
pi = 4*(double)innerhalb/gesamt;
return pi;
}
Code: Alles auswählen
#genauigkeit = 10000000
#rand_genauigkeit = 100000
start = ElapsedMilliseconds()
Procedure.d pi(tropfenzahl.l)
pi.d = 0
innerhalb.l = 0
gesamt.l = tropfenzahl
While tropfenzahl > 0
; generiere Tropfen und addiere je nach Zugehörigkeit
dotx.d = 2 * (Random(#rand_genauigkeit)/#rand_genauigkeit) - 1
doty.d = 2 * (Random(#rand_genauigkeit)/#rand_genauigkeit) - 1
If (dotx*dotx + doty*doty <= 1)
; Punkt liegt innerhalb des Kreises
innerhalb+1
Else
; Punkt liegt außerhalb des Kreises
EndIf
tropfenzahl-1
Wend
pi = 4*innerhalb/gesamt
ProcedureReturn pi
EndProcedure
MessageRequester("PI","Pi:"+Chr(9)+StrD(pi(#genauigkeit))+Chr(10)+"Zeit:"+Chr(9)+Str(ElapsedMilliseconds()-start)+" Ms")