Gast
#961926
Hintergrund für das Folgende ist die Formel limes n->inf (1+x/n)^n = exp(x) mit x = 1 ergibt sich eine Nährung seltsamerweise taucht ein Sprung in der Approximation auf wenn n von 1e14 auf 1e15 um den Faktor 1000 wächst. octave.exe:19> dx=(1+1/1e14)^1e14 - exp(1) dx = -0.00217179437202208 octave.exe:20> dx=(1+1/1e15)^1e15 - exp(1) dx = 0.316753378090217 ok, könnte man die Idee haben, dass es ein Bug ist deswegen schnell in Python ausprobiert |4> import math |5> (1+1/1e14)**1e14 - math.exp(1) <5> -0.0021717943720220845 |6> (1+1/1e15)**1e15 - math.exp(1) <6> 0.31675337809021675 da beide auf C double stützen, ist eigentlich redundant es nochmal in C++ auszuprobieren. Was passiert da? Wird die Potenzierung 'naive' in einer Schleife durchmultipliziert, und dabei baut sich so ein grosser Fehler auf? Grüsse