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

#124
23. Nachkommastelle der EULER-Konstanten
Fortgeschrittener - C
von hollst
- 10.08.2016 um 15:51 Uhr
Die EULER-Konstante e ist im Bereich der angewandten Mathematik die mit Abstand wichtigste reelle Zahl.
Selbst die in der Allgemeinheit bekanntere Kreiszahl pi kann da nicht mithalten.
EULER selbst hat bereits vor dem Jahre 1748 (Bild 1, Introductio in analysin infinitorum, in diesem Buch auf Seite 90) e mit 23 Nachkommastellen angegeben
(bzw. von seinen Schülern zuvor berechnen lassen): e = 2.71828182845904523536028 ...
Eine fantastische Leistung, die sicherlich einige Monate Zeit und Nerven gekostet hat.
Die 23. Nachkommastelle, die 8, muss ein gerundeter Wert sein. Folgende Fragen sollen mit Hilfe von Rechentechnik beantwortet werden:
Wurde die 23. Nachkommastelle von EULER auf- oder abgerundet und welchen Wert hat die 100. Nachkommastelle von e?
Für die Berechnung von e gibt es diverse Formeln, am bekanntesten ist die Aufsummierung aller reziproke Fakultäten der natürlichen Zahlen (e = 1/0! + 1/1! + 1/2! + 1/3! + ...). Der Schwierigkeitsgrad der Aufgabenstellung hängt mit der Umgehung von Rundungsfehlern zusammen. Wer sein Ergebnis abgleichen möchte, kann sich z. B. hier informieren: http://www-history.mcs.st-andrews.ac.uk/HistTopics/e_10000.html
Selbst die in der Allgemeinheit bekanntere Kreiszahl pi kann da nicht mithalten.
EULER selbst hat bereits vor dem Jahre 1748 (Bild 1, Introductio in analysin infinitorum, in diesem Buch auf Seite 90) e mit 23 Nachkommastellen angegeben
(bzw. von seinen Schülern zuvor berechnen lassen): e = 2.71828182845904523536028 ...
Eine fantastische Leistung, die sicherlich einige Monate Zeit und Nerven gekostet hat.
Die 23. Nachkommastelle, die 8, muss ein gerundeter Wert sein. Folgende Fragen sollen mit Hilfe von Rechentechnik beantwortet werden:
Wurde die 23. Nachkommastelle von EULER auf- oder abgerundet und welchen Wert hat die 100. Nachkommastelle von e?
Für die Berechnung von e gibt es diverse Formeln, am bekanntesten ist die Aufsummierung aller reziproke Fakultäten der natürlichen Zahlen (e = 1/0! + 1/1! + 1/2! + 1/3! + ...). Der Schwierigkeitsgrad der Aufgabenstellung hängt mit der Umgehung von Rundungsfehlern zusammen. Wer sein Ergebnis abgleichen möchte, kann sich z. B. hier informieren: http://www-history.mcs.st-andrews.ac.uk/HistTopics/e_10000.html
#1

von devnull (8870 Punkte)
- 22.11.2016 um 15:42 Uhr
Konsolenausgabe:
Berechne 1000 Nachkommastellen von e:
2.718281828459045235360287471352662497757247093699959574966967627724076630353547...
23. Stelle von e ist '8'
24. Stelle von e ist '7'
100. Stelle von e ist '4'

/**************************************** * spigot_e.c Tröpfelalgorithmus für e ****************************************/ #include <stdlib.h> #include <stdio.h> int main(int argc, char **argv) { int max = 1000; int len = 10*max / 4; int i, j, p, q; long a[len+1]; /* char-Array fuer e-Ziffern */ char e[max+1]; char *pe = e; printf("Berechne %d Nachkommastellen von e:\n", max); for (i=1; i<=len; i++) a[i] = 1; for (i=1; i<=max; i++) { q=0; for (j=len; j>=1; j--) { p = 10*a[j] + q; a[j] = p % (j+1); q = p / (j+1); } *pe++ = q+'0'; } e[max]=0; printf("2.%s\n", e); printf(" 23. NK-Stelle von e ist '%c'\n", e[22]); printf(" 24. NK-Stelle von e ist '%c'\n", e[23]); printf("100. NK-Stelle von e ist '%c'\n", e[99]); return 0; }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1