Rekursion: Unterschied zwischen den Versionen
(Fakultät iterativ zu lösen) |
Lgkf (Diskussion | Beiträge) K (etwas umformuliert) |
||
Zeile 10: | Zeile 10: | ||
die Rechenvorschrift besagt, daß die Fakultät von n 1 ist, wenn n == 1 ist, sonst muss n mit der Fakultät von (n -1) multipliziert werden. | die Rechenvorschrift besagt, daß die Fakultät von n 1 ist, wenn n == 1 ist, sonst muss n mit der Fakultät von (n -1) multipliziert werden. | ||
Das funktioniert tadellos, braucht aber viel Stack-Space | Das funktioniert tadellos, braucht aber viel Stack-Space. | ||
<br> Deshalb ist die Funktion 'Fakultät' in modernen Sprachen auch eigentlich immer iterativ implemtiert. Die fortwährende Erwähnung dieser Funktion als Paradebespiel für Rekursion ist vermutlich auf Undercoveraktionen verdeckt arbeitender ehemaliger [[Lisp]]ler zurückzuführen. | |||
==Weblinks== | ==Weblinks== | ||
* [http://de.wikipedia.org/wiki/Rekursion Wikipedia:Rekursion] | * [http://de.wikipedia.org/wiki/Rekursion Wikipedia:Rekursion] |
Version vom 19. März 2004, 10:09 Uhr
bitte unter Rekursion nachschauen.
rekursiv bedeutet: 'auf sich selbst bezogen'.
Gemeint ist z.B. folgendes:
die 'Fakultät' ist das Produkt einer Zahl mit allen ihren Vorläufern bis 1.
in einer Sprache wie Lisp, die rekursive Definitionen zulässt, kann die Fakultät so definiert werden:
(defun fak(n) (if (eq n 1) 1 (mul n (fak (sub1 n)))))
die Rechenvorschrift besagt, daß die Fakultät von n 1 ist, wenn n == 1 ist, sonst muss n mit der Fakultät von (n -1) multipliziert werden.
Das funktioniert tadellos, braucht aber viel Stack-Space.
Deshalb ist die Funktion 'Fakultät' in modernen Sprachen auch eigentlich immer iterativ implemtiert. Die fortwährende Erwähnung dieser Funktion als Paradebespiel für Rekursion ist vermutlich auf Undercoveraktionen verdeckt arbeitender ehemaliger Lispler zurückzuführen.