Fibonacci (Prolog)
Aus Infostudium Wiki
Das folgende Programm berechnet die n-te Fibonacci-Zahl. Es ist elegant und leicht verständlich, jedoch ineffizient, weil baumrekursiv:
fib(0, 1). fib(1, 1). fib(N, F) :- N > 1, N1 is N - 1, N2 is N - 2, fib(N1, F1), fib(N2, F2), F is F1 + F2.
Andere Definition:
Die Fibonacci-Reihe ist die Zahlenfolge 1, 1, 2, 3, 5, 8, 13 ..., wobei die i-te Fibonacci-Zahl die Summe der beiden Vorgänger ist.
fib(0, 1):-!.
fib(1, 1):-!.
fib(N, W) :- N1 is N-1, fib(N1, W1),
N2 is N-2, fib(N2, W2),
W is W1 + W2.
