. , .. , , . , , , , , . , , .
I. Prolog
. .
. .
. .
v. .
: , j v ( . 4.7). : = -
v = +
v=x+y
. 4.7, , , . , , : -
2, = 4, = 2 - 4 = -2.v = 2 + 4 - 6
.
DX - [1,2,3,4,5,6,7,8]
Dy- [1,2,3,4,5,6,7,8]
Du = [-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7]
Dv = [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
: (X, Y, . V) (X Dx, V Dy ..), . , X Y U V . , , : , , , . , , 4.4.
4. :
Y. : sol mist, Dx, , Du, DV)
Y ( Ylist) , , Dx. Y U V Dy, Du Dv. , solution, :?- solution(S).
sol , .
4.4. 3
% solution; Ylist),
|
|
% Ylist - Y
solution(Ylist):-
sol(Ylist, % Y
[1,2,3,4,5,6,7,8], * X
[1,2,3,4,5,6,7,81, % Y
-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7], * [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]). %
SOl ([], [], Dy, Du, Dv).
soli [Y I Ylist], [X | Dxl), Dy, Du, Dv):-
del(Y, Dy, Dyl), % ?
is.-;-Y, %
del( U, Du, Dull, %
V is X+Y:.
delf V, Dv, Dvl), %
soil Ylist, Dxl, Dyl, Dul, Dvl). %
del[ Item, [ire- [ List], List).
del Item, [First List], [First I Listl) ):-del(Item, List, Listl).
sol , N ( ), Dx, Dy ..
. gen(N1, N2, List)
, N1 N2, :
List = [ N1, N1 + 1, N1 + 2,..., N2 - 1, N2j
.
gen (, N, [N]).
gen(N1, N2,:.: List]}:-
N1 < N2, Mis N1 + 1,
gent , N2, List).
, solution, , : solution (N, S)
I. Prolog
N S , Y N . solution :
solution(N, S):-
gen(1, , Dxy), % Dxy - X Y Nul is 1 - N, Bu2 is H - 1,
gen{Nul, Nu2f Du),
Mv2 is + H,
gen; 2, Hv2, Dv},
soli 5, Dxy, Dxy, Du, Dv).
, 12 :?- solution* 12, S). 3 - [1,3,5,8,10, 12, , 11, 2,7, 9, 45