% Fibonacciho posloupnost fib(X, X) :- X =< 1, !. fib(Poradi,Vysledek) :- Poradi > 1, P1 is Poradi-1, P2 is Poradi-2, fib(P1 ,V1), fib(P2, V2), Vysledek is V1 + V2. % Alternativní Fibonacciho posloupnost fib_v2(0,0):- !. fib_v2(1,1):- !. fib_v2(Poradi,Vysledek):- P1 is Poradi - 1, P2 is Poradi - 2, fib_v2(P1, V1), fib_v2(P2, V2), Vysledek is V1 + V2. % Je prvek ve Fibonacciho posloupnosti is_fib(0) :- !. is_fib(1) :- !. is_fib(X) :- is_fib_pom(X, 0, 1). is_fib_pom(X, N1, N2) :- X is N1 + N2, !. is_fib_pom(X, N1, N2) :- X < N1 + N2, !, fail. is_fib_pom(X, N1, N2) :- V is N1 + N2, is_fib_pom(X, V, N1). % Vypsání Fibonacciho posloupnosti fib_print(Poradi) :- fib_print_pom(Poradi, 0, 1), !. fib_print_pom(Poradi, _, _) :- Poradi < 0. fib_print_pom(Poradi, N1, N2) :- Poradi >= 0, print(N1), nl, Vysledek is N1 + N2, P1 is Poradi - 1, fib_print_pom(P1, N2, Vysledek).