. Prolog , .
- N. : 1, 1, 2, 3, , S, 13,...
, , . liib; , F)
N-ro , F, N. , = 1. fib , , .
fib E 1,1). % 1-
fib(2, 1). % 2-
fib(, F):- % - , N > 2
N > 2,
Ml is N - 1, Eifo(Ml, Fl!,
82 is N - 2, fib (N2, F2),
" is Fl + F2. % - -
. , :
?- fib(6, F).
186 I. Prolog
. 8.2 . , , f (3), , .
1 1
. R.2. 6- fib
, . , asserta () . , fib, , . fib2 fib , :
fib2! 1,1}. % 1-
fib2(2, 1). % 2-
fib2( N, F) :- % - , > 2
N > 2,
N1 is N - 1,
fib2(Ml, Fib
N2 is - 2,
fib2(N2, F2),
1- |
F is Fl + F2,
asserta [ fxb2 [ H,
:-■: |
fib2, , , . fib2 { N, Fi N- -
8.
. , 8.3 6- fib2. . 8.2 , . , .
|
|
3( ) |
. 8.3. 6- £12, ; , , fib (. . 8.2)
, , . , , . , , . - , " ", . " ", , . - . : forwardfib(, N, Fl, F2, F)
F1 F2 -1)- - , a F - - . forwardf , 8.4. forwardfib , -
I. Prolog
( = N) . forwardfib , F, , N. .
% 1 "? - % N-e |
Eib3! , F):-
forwardfib(2, N, 1, 1, F). forwardfib! M, N, ., F2, F2}:-
?- N. forwardfib! , N, F1, 2, F):-
!: <::,
HextM is + 1,
HeJStF2 is Fl + F2,
forwardfib(NextM, , F2, NextF2, F).
. = 2
+ 1
. = N
. 8.4. ; , , : . f(M-l) £<)
, forwardfib , , F1 F2 .