Rekursion

Aus HeiseForenWiki
Version vom 19. März 2004, 08:10 Uhr von Atom3000 (Diskussion | Beiträge) (Fakultät iterativ zu lösen)
Zur Navigation springen Zur Suche springen

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, weshalb die Fakultät entgegen des Eindrucks, den die fortwährende Erwähnung als Paradebespiel für Rekursion erweckt, eleganter und billiger iterativ lösbar ist.


Weblinks