Berechnung der Zahl e auf 2 Millionen Dezimalstellen


Hier ein wirklich sehr kurzes Programm, das die Zahl e auf 2 Millionen Stellen berechnet.

Dabei wird die Reihenentwicklung e = 1/0! + 1/1! + 1/2! + 1/3! + 1/4! + … als Kettenbruch dargestellt.

Das Programm läuft über ein paar Stunden und gibt dabei 2000007 Dezimalstellen aus, jeweils 9 Zahlen auf einmal. Die Ausgabe beginnt schon während der Berechnung und nicht erst am Ende. Die Programmlogik ist angelehnt an florian-schoppmann.pdf.


Hier der Quell Code von e.c:


#include <stdio.h>
unsigned long long a[388100],b,c=222223,d,e,f=1e9,g;
main(){for(d=f/10;b=c<27645?7*c+7:c+165877,c--;g=printf("%09d",(int)(e+d/f)))
for(e=d%=f;--b;d/=b)d+=f*(g?a[b]:f/10),a[b]=d%b;}


Und hier die 2000007 (korrekten!) Dezimalstellen von e


Die Herleitung passt auf einen Bierdeckel, den ich leider nicht mehr finden konnte, aber das Ergebnis ist korrekt, was durch Vergleich mit anderen Quellen, z.B dieser verifiziert werden kann: http://apod.nasa.gov/htmltest/gifcity/e.2mil



Bernd Edlinger

29.12.2012