Hallo,
Mit diesem Snippet kann die Kreiszahl Pi berechnet werden. Dabei kann mit Circount die Genauigkeit eingestellt werden.
Die Grundlage basiert auf den Wikipediaeintrag.
Funktionsweise:
Es wird die Fläche eines Viertelkreises bestimmt mit dem Radius Circount. Um die Fläche zu bestimmen wir der Umfang mit dem Satz des Pythagoras abgefahren. Danach wird die Fläche mit 4 multipliziert und durch Circount² geteilt.
Zu beachten ist das Pi nicht genauer dargestellt werden kann als die Genauigkeit von double. Wichtig ist auch das die Laufzeit des Programms mit höheren Circount quadratisch zunimmt.
static double CalcPi(long circount)
{
Stopwatch sw = new Stopwatch();
sw.Start();
long x = 0;
long y = circount;
long gesamt = 0;
long squarecircount = circount * circount;
while (y > 0 && x < circount)
{
if ((x * x) + (y * y) <= squarecircount)
{
x++;
gesamt += y;
}
else
{
y--;
}
}
sw.Stop();
var pi = (gesamt * 4.0) / squarecircount;
Console.WriteLine("Pi:{0} Time:{1} Width:[{2}]",pi,sw.ElapsedMilliseconds,circount);
return pi;
}
Kommentare zum Snippet