Documente Academic
Documente Profesional
Documente Cultură
7
Distribuirea numerelor. Probleme combinatorice.
distrib(i).
distribuire(i,li,li,li,i).
sepoate(i,li).
apartine(i,li).
cond2(i,li).
distr(0,[],[],[]).
distr(N,[N|A],B,C):-N>0,N1 is N-1,distr(N1,A,B,C),not(conditie(N,A)).
distr(N,A,[N|B],C):-N>0,N1 is N-1,distr(N1,A,B,C),not(conditie(N,B)).
distr(N,A,B,[N|C]):-N>0,N1 is N-1,distr(N1,A,B,C),not(conditie(N,C)).
conditie(Z,L):-member(X,L),member(Y,L),not(X=Y),Z is X+Y.
conditie(Z,L):-member(X,L),Z is X*2.
?- distr(10,A,B,C).
distr(10,A,B,C).
A B C
[10, 9, 8, 3] [7, 4, 1] [6, 5, 2]