Laborator 4
Test...
Exercitii pregatitoare:
Exercitiul 1
parent(georgeta, ioana).
parent(georgeta, vasile).
parent(georgeta, mihai).
parent(ioana, maria).
parent(vasile, andrei).
parent(mihai, valentin).
female(georgeta).
grandmother(X, Y) :- female(X), parent(X, Z), parent(Z, Y).
grandmother(georgeta, maria).
true ;
false.
grandmother(georgeta, X).
X = maria ;
X = andrei ;
X = valentin.
grandmother(ioana, maria).
false.
Exercitiul 2
X0=2
X1=1
X2=0
Xk = X(n-1) - X(n-2) + 2* X(n-3)
seq(0, 2) :-!.
seq(1, 1) :-!.
seq(2, 0) :-!.
seq(N, R) :- N>2, New1 is N-1, New2 is N-2,Nnew3 is N-3,
seq(New1, Rnew1), seq(New2, Rnew2), seq(Nnew3, Rnew3),
R is Rnew1 - Rnew2 + 2*Rnew3.
seq(0,2).
true.
seq(1,X).
X = 1.
seq(5, X).
X = 2
seq(-1, X).
false.
Exercitiul 3
Relatia de recurenta
Xn,0 = 1 daca n>=0
Xn,k = 0 daca k>n
Xn,k = (k+1)* X(n+1)k + (n-k)* X(n-1)(k-1)
seq2(N, 0, R) :- N >=0, R is 1,!.
seq2(N, K, R) :- K>N, R is 0,!.
seq2(N, K, R) :- Nnew is N-1, Knew2 is K-1,
Kplus is K+1, NK is N-K,
seq2(Nnew, K, Rnew1), seq2(Nnew, Knew2, Rnew2),
R is Kplus*Rnew1 + NK*Rnew2.
seq2(0,0,1).
true
seq2(1,2,X).
X = 0.
seq2(5,3,X).
X = 26.
seq2(-1,5,X).
X = 0
Example
i(1).
i(2).
j(1).
j(2).
j(3).
q(X,Y) :- i(X), j(Y),!.
s(0,0).
s(X,Y) :- q(X,Y).