Einzelnen Beitrag anzeigen

Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#6

Re: MonteCarlo....Optimierung des Grundgedankens?

  Alt 1. Mär 2006, 19:59
hmm....prinzipiell hat Jelly ja recht

Aber ich konnte es natürlich nicht lassen

Delphi-Quellcode:
function CalculatePi(Raster: Int64): Extended;
var i: Integer;
    Upper, Lower, T, RQuad: Int64;
    E: Currency; //Currency...selbe genauigkeit, 2 Byte weniger...die Nachkommastellen interessieren hier eh nicht
begin
  Upper:=0; Lower:=0;
  RQuad:=Raster*Raster; //Einmal Quadrieren reicht
  for i:=0 to Raster-1 do
    begin
    T:=i+1; // Wenns Integer bleibt gibts nen Overflow
    E:=Sqrt(RQuad - T*T);
    Inc(Upper,Ceil(E)); //Max und Min zählen
    Inc(Lower,Floor(E));
    end;
  Result:=2*(Upper+Lower)/RQuad; //Aus Durchschnitt PI berechnen
end;
relevante rechenzeiten...
die gibts erst ab eine Rastergröße von ca. 1.000.000 (Athlon 2600+)

Übersicht:
Delphi-Quellcode:
Raster Millisek Genauigkeit(Stellen)
1000 0 2
10000 2 4
100000 21 5
1000000 214 6
10000000 2225 7
100000000 22681 8
gemessen mit QueryPerformanceCounter....

Sinnlos...aber es geht...
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat