(Pi ist überall)
Über Google erfährt man bekanntlich so manches, was man vorher nicht wusste. Zum Beispiel, dass der 14.3 der Pi-Tag ist (eigentlich auch logisch). Kann und sollte man für eine harmlose Zahl einen Gedenktag einrichten? Ich denke schon, da es kaum etwas gibt (was mir spontan einfallen würde), das in allen Kulturen gleichermaßen geschätzt wird, das von keiner Ideologie umklammert ist, und um das noch keine Kriege geführt wurden. Pi ist vor allem ein besonderer Tag für die sog. Nerds.
Wie man als typischer Nerd (oder Geek, wobei ich den Unterschied zwischen den beiden soziologisch-kulturellen Minderheiten nicht in 1-2 Sätzen beschreiben könnte - ich vermute, Geeks pflegen häufiger soziale Kontakte) den "Pie-Day" am besten begehen kann erfährt man hier: http://www.wikihow.com/Celebrate-Pi-Day
Da es in diesem Blog hin und wieder auch um Visual Basic gehen soll, im folgenden eine kleine Console-App, die die Kreiszahl über eine einfache Reihenentwicklung annähert(zur Abwechslung einmal ohne LINQ&Lambdas):
' Berechnet Pi über eine einfache AnnäherungModule Module1 Private RecurseLimit As Byte = 60 Private PiOffiziell As String = "3.1415926535897932384626433832795028841971693993751" Sub Main() Console.Title = "Anhäherung an Pi" Console.ForegroundColor = ConsoleColor.Green Dim PiZahl As Double = 2 * CalculatePI(1) Console.WriteLine("Die Annährung: {0:N20}", PiZahl) Console.WriteLine("Math.PI: {0:N20}", Math.PI) Console.WriteLine("Das Original: {0:N50}", PiOffiziell) Console.ReadLine() End Sub Private Function CalculatePI(ByVal i As Integer) As Double If i > RecurseLimit Then Return i Else Return 1 + (i / (1 + (2 * i))) * CalculatePI(i + 1) End If End Function End Module
Im Rahmen der Double-Genauigkeit ist das Ergebnis nicht schlecht und entspricht ziemlich genau dem, was auch Math.Pi liefert. Natürlich ist es kein Vergleich zur offiziellen Zahl, die inzwischen auf etwa 2 Trillionen Ziffern genau berechnet wurde (bekanntlich ist Pi eine unendliche Zahl), oder zu jener Kurzvarianten, die man (als echter Geek bzw. Nerd) eigentlich auswendig aufsagen können sollte (der Weltrekord liegt laut Wikipedia bei 100.000 Stellen, aufgestellt von Akira Haraguchi, der für das Aufzählen einen Tag benötigte):
3.1415926535897932384626433832795028841971693993751
Wer viel Zeit hat und gerne einmal eine "State of the Art"-Variante kennenlernen möchte, sollte sich den folgenden Text zu Gemüte führen, der zeigt, wie sich Pi mit Hilfe der Grafikkarten-CPU (GPU) und F# berechnen lässt:
http://tomasp.net/articles/accelerator-intro.aspx
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.