22. Aug. 2022
Ein paar Stellen der Kreiszahl sollte man immer im Haus haben. Wer weiß, wann man das nächste Mal den Umfang des beobachtbaren Universums in Plancklängen berechnen muss. Für diesen größten möglichen Kreis mit der größten sinnvollen Präzision reichen übrigens 61 Dezimalstellen aus, bitte sehr (die an 62. Stelle kommende 9 hab ich noch angedeutet, damit kannst du die 5 hinten gern auch auf 6 aufrunden):
3,14159265358979323846264338327950288419716939937510582097494459
Alles dahinter scheint daher eine rein sportliche Übung ohne direkten Nutzen zu sein. Oder? Nein, das ist schon etwas mehr als nur heiße Luft.
Weil auf meinem Webspace noch einige Gigabyte ungenutzt rumliegen, hab ich mal eines davon in Anspruch genommen und eine Milliarde Dezimalstellen zur allgemeinen Verwendung hochgeladen.
Die Ausgabe von einer Milliarde Zeichen umfasst logischerweise 1 Milliarde Bytes, das sind 953,7 MiB (1 Mebibyte = 1024 Kibibyte à 1024 Byte).
→ π mit 1 Milliarde Nachkommastellen (mit der 3 und dem Komma also 1 000 000 002 Zeichen).
Empfohlenes Verfahren: Klick den Link mit rechts an und wähle „Speichern unter“.
Ansonsten wird dein Browser die Augen verdrehen, sich dann zwei GB Arbeitsspeicher krallen, eine Zeitlang rödeln und nach fertigem Download versuchen, eine Textdatei mit einer einzigen riesiglangen Zeile anzuzeigen. Bei mir schmiert Brave nach kurzer Zeit mit Fehlermeldung ab; Firefox beißt sich durch, braucht aber auch eine Viertelstunde und länger. Die letzten 100 Zeichen siehst du unten in der Statusmeldung von y-cruncher nochmal zur Kontrolle.
Die Geschichte der Berechnung der Kreiszahl ist durchaus interessant. Archimedes begann damit, Kreise von innen und außen durch Vielecke anzunähern, deren Umfang sich leicht berechnen lässt, und die Kreiszahl damit „einzukesseln“. Er kam bis zum 96-Eck und damit zu 3,1408 < π < 3,1429. Das brauchen wir heute nicht mehr, wir haben numerische Verfahren, die ein Computer leicht durchführen kann, obwohl sie für Menschen unmöglich wären (man muss dafür unter anderem zwei riesige [and when I say riesig, I mean riesig!] Zahlen durcheinander dividieren). Mehr dazu auf Wikipedia.
Die Milliarde Stellen hier hat y-cruncher berechnet, mit untenstehender Meldung.
Man prüft einzelne berechnete Stellen (oder auch z.B. die letzten 100) mit einem anderen Berechnungsverfahren nach, mit dem sich (auf Umwegen) gezielt einzelne Stellen berechnen lassen – so was gibt’s. Dieses Verfahren braucht zwar viel mehr Zeit als das für die Hauptberechnung verwendete, aber für Stichproben ist es schnell genug. Solange nicht beide Verfahren denselben Fehler enthalten, können wir annehmen, dass das Ergebnis stimmt.
Computation Mode: Ram Only Multi-Threading: Push Pool -> 8 / ? (randomization on) Working Memory... 4.71 GiB (spread: ?) Twiddle Tables... 224 MiB (locked, spread: ?) Begin Computation: Series CommonP2B3... 70,513,681 terms (Expansion Factor = 2.699) Time: 116.215 seconds ( 1.937 minutes ) Large Division... Time: 5.803 seconds ( 0.097 minutes ) InvSqrt(10005)... Time: 3.800 seconds ( 0.063 minutes ) Large Multiply... Time: 2.566 seconds ( 0.043 minutes ) Pi: 128.384 seconds ( 2.140 minutes ) Base Converting: Time: 10.372 seconds ( 0.173 minutes ) Writing Decimal Digits: Time: 7.641 seconds ( 0.127 minutes ) Total Computation Time: 138.757 seconds ( 2.313 minutes ) Start-to-End Wall Time: 147.539 seconds ( 2.459 minutes ) CPU Utilization: 737.94 % + 0.71 % kernel overhead Multi-core Efficiency: 92.24 % + 0.09 % kernel overhead Last Decimal Digits: Pi 6434543524 2766553567 4357021939 6394581990 5483278746 : 999,999,950 7139868209 3196353628 2046127557 1517139511 5275045519 : 1,000,000,000 Spot Check: Good through 1,000,000,000 Version: 0.7.8.9507 (Linux/13-HSW ~ Airi) Processor(s): Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz Topology: 8 threads / 4 cores / 1 socket / 1 NUMA node Usable Memory: 16,571,592,704 (15.4 GiB) CPU Base Frequency: 3,591,643,968 Hz
… also in knapp zweieinhalb Minuten, auf einem leicht aufgemotzten Wald-und-Wiesen-Office-Desktop. Vor 30 Jahren hat ein Großrechner für 10 Mio. Stellen noch einen Tag benötigt. Der Rekord liegt (Stand Juni 2022) bei 100 Billionen Stellen, die Berechnung hat fünf Monate gedauert.