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

#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.
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

von eulerscheZhl (5230 Punkte)
- 12.12.2014 um 09:03 Uhr

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
Seite 1 von 0
1