ich bin Python-neuling und komme im Moment nicht weiter bei meinem Code.
Zunächst: Unsere Aufgabe folgendes: http://puu.sh/clnAL/ed33a278f1.png.
Mein Lösungsansatz:In dieser Aufgabe soll eine Approximation der Exponentialfunktion `exp(x) : x ⟼ e^x` berechnet werden. Wir verwenden dazu, dass
**Eingabe** Jede Zeile der Eingabe enthält eine Testinstanz in Form zweier natürlicher Zahlen x ∈ [1,20], n ∈ [0,60] (in dieser Reihenfolge und mit einem Leerzeichen getrennt).Code: Alles auswählen
n ____ \ ` \ i lim \ x exp(x) = n→∞ / ── / i! /___, i = 0
**Ausgabe** Für jede Testinstanz soll eine einzelne Zeile ausgegeben werden, in der der Wert [der Rechnung¹] mit genau 4 Nachkommastellen steht.
*Achtung: Gerundete Ergebnisse sollen immer gemäß Pythons ``float`` Rundung ausgegeben werden — trotz möglicher Ungenauigkeiten!*
[¹ Hier stand noch einmal die rechte Seite der Formel.]
Code: Alles auswählen
#!/usr/bin/env python3
from sys import stdin
from math import factorial
summe=0
for line in stdin:
x, n =(int(word) for word in line.split())
for i in range(n+1):
power=pow(x,i)
fakul=factorial(i)
summe=summe+power/fakul
print("{:.4f}".format(summe))
Allerdings rechnet mein Programm zwar zunächst z.B. wenn ich 1 1 eingebe kommt 2.0000 raus
Wenn ich danach 2 5 eingabe rechnet er das auch noch richtig aus aber ab der 3. Eingabe kommen nur komische Werte raus.
z.B.
1. Eingabe 1 1 -> Ausgabe 2.000
2. Eingabe 2 5 -> Ausgabe 9.2667
3. Eingabe 20 60 ->Ausgabe 48165.6764 (richtig wäre)485165195.4097
Kann mir jemand helfen, den Fehler zu finden^^