C# :: Aufgabe #38 :: Lösung #1

3 Lösungen Lösungen öffentlich
#38

Laufzeit-Berechnung von PI mittels BBP-Reihe

Anfänger - C# von Sone - 05.01.2013 um 00:10 Uhr
Berechnen Sie PI mit der Bailey-Borwein-Plouffe-Formel (BBP-Reihe).

Extrahieren Sie dazu aus der Standardeingabe die Größe der Summenformel (im Wikipedia-Artikel: Das k) und berechnen Sie dann PI mit der Genauigkeit eines long double (und speichern Sie es selbstverständlich auch in einem).

Anschließend geben Sie die von ihnen berechnete Annäherung und die prozentuale Abweichung vom "echten", vor-berechneten PI an.
#1
vote_ok
von eulerscheZhl (5230 Punkte) - 12.12.2014 um 09:03 Uhr
Quellcode ausblenden C#-Code
using System;

namespace trainYourProgrammer
{
	class MainClass
	{
		public static decimal calcPi(int n) {
			decimal factor = 1; //das wird 1/16^k, erspart die Verwendung von Pow (was langsam ist und ein double liefert)
			decimal pi = 0;
			for (int k = 0; k <= n; k++) {
				pi += factor * (4 / (8 * k + 1m)
				                - 2 / (8 * k + 4m)
				                - 1 / (8 * k + 5m)
				                - 1 / (8 * k + 6m));
				factor /= 16;
			}
			return pi;
		}

		static void Main(string[] args)
		{
			Console.Write ("Berechnung von Pi mittels unendlicher Reihe bis k = ");
			int n = (int.Parse (Console.ReadLine ()));
			decimal realPi = 3.14159265358979323846264338327950m;
			decimal myPi = calcPi (n);
			Console.WriteLine ("errechnetes Pi: " + myPi);
			Console.WriteLine ("Abweichung: " + (realPi - myPi) / realPi * 100 + "%");
		}
	}
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben