Original von eulerscheZahl
Auch ungetestet, aber das sieht mir falsch aus: faculty[i]=[i-1]*i, vor [i-1] fehlt die Fakultät.
Wollte nur gucken ob Du auch aufpasst
Habs geaendert, danke
eulerscheZahl
Auch ungetestet, aber das sieht mir falsch aus: faculty[i]=[i-1]*i, vor [i-1] fehlt die Fakultät.
ed209
Hi
Die Frage ist etwas vage, aber hier ein naiver Ansatz in python (ungetested):
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
calculated = 1
faculty = dict()
faculty[1] = 1
def getFaculty(n):
if n>calculated:
for i in range(calculated+1, n):
faculty[i]=faculty[i-1]*i
return faculty[n]
Kurz: Merk dir alle Zwischenergebnisse.
Bestimmt gibt es schlauere Wege die Fakultaet zu berechnen, aber Du hast nicht beschrieben was Dein Ursprungsalgorithmus ist
Es wuerde auch mit Rekursion funktionieren, das ueberlasse ich Dir als Uebungsaufgabe
Gruss,
ED
eulerscheZahl
Rekursion ist schlecht, wenn du schnell sein willst. Eine einfache Schleife ist schneller. Zwischenspeichern kann Sinn machen - je nachdem wie oft du die Fakultät brauchst. Wenn du das Ergebnis ständig brauchst, ist es schnell im Cache und du sparst Zeit. Bei nur wenigen Zugriffen kann das Nachschlagen länger dauern als neu berechnen.
Olaf3577
Laufzeit durch Speicher ersetzen
Meine Frage:
Guten Tag,
Wie kann man bei der mehrfachen Berechnung der Fakultät Laufzeit durch Speicher ersetzen?
Meine Ideen:
Nach etwas Recherche würde ich sagen: -über Rekursion und Zwischenspeicherung