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).