% Berechnung der Fibonacci-Folge
% für Amzi! Prolog
% Wolfgang.Urban@schule.at
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Algorithmus 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fibo1(1,1).
fibo1(2,1).
fibo1(N,F) :-
N > 2,
N1 is N - 1,
N2 is N - 2,
fibo1(N1,F1),
fibo1(N2,F2),
F is F1 + F2.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Algorithmus 2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
dynamic fibo2liste/2. % Regel mit 2 Parametern, nicht kompilieren
fiboliste(2,1). % erste Werte manuell
fiboliste(1,1).
fibo2(N,F) :- % falls Wert bereits berechnet wurde
fiboliste(N,F).
fibo2(N,F) :-
N > 2,
N1 is N - 1,
N2 is N - 2,
fibo2(N1,F1),
fibo2(N2,F2),
F is F1 + F2, % neu berechnet
asserta( fiboliste(N,F) ). % in Datenbasis vorn einfügen
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Verwendung:
%
% fibo1(10,X). % bindet X an 55
% fibo2(10,X). % bindet X an 55