Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Softwaretechnik » Laufzeit durch Speicher ersetzen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Laufzeit durch Speicher ersetzen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Olaf3577
unregistriert
Laufzeit durch Speicher ersetzen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
18.02.2017 17:53
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.

__________________
Syntax Highlighting fürs Board (Link)
18.02.2017 18:16 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
ed209
Routinier


Dabei seit: 07.09.2006
Beiträge: 324

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 smile

Es wuerde auch mit Rekursion funktionieren, das ueberlasse ich Dir als Uebungsaufgabe Augenzwinkern

Gruss,
ED

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von ed209: 19.02.2017 16:41.

19.02.2017 16:36 ed209 ist offline E-Mail an ed209 senden Beiträge von ed209 suchen Nehmen Sie ed209 in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Auch ungetestet, aber das sieht mir falsch aus:
faculty[i]=[i-1]*i, vor [i-1] fehlt die Fakultät.

__________________
Syntax Highlighting fürs Board (Link)
19.02.2017 16:38 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
ed209
Routinier


Dabei seit: 07.09.2006
Beiträge: 324

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
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 Augenzwinkern
Habs geaendert, danke
19.02.2017 16:41 ed209 ist offline E-Mail an ed209 senden Beiträge von ed209 suchen Nehmen Sie ed209 in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Softwaretechnik » Laufzeit durch Speicher ersetzen