📄 zebra.pl
字号:
% File : zebra.pl
% Author : Neng-Fa ZHOU
% Date : 1992
% Purpose: solve the five-house puzzle in CLP(FD)
top:-
vars_constraints(Vars),
labeling(Vars),
write(Vars),nl.
go:-
statistics(runtime,[Start|_]),
top,
statistics(runtime,[End|_]),
T is End-Start,
write('execution time is '),write(T), write(milliseconds).
vars_constraints(Vars):-
Vars=[N1,N2,N3,N4,N5,
C1,C2,C3,C4,C5,
P1,P2,P3,P4,P5,
A1,A2,A3,A4,A5,
D1,D2,D3,D4,D5],
Vars in 1..5,
alldifferent([C1,C2,C3,C4,C5]),
alldifferent([P1,P2,P3,P4,P5]),
alldifferent([N1,N2,N3,N4,N5]),
alldifferent([A1,A2,A3,A4,A5]),
alldifferent([D1,D2,D3,D4,D5]),
N1#=C2,
N2#=A1,
N3#=P1,
N4#=D3,
N5#=1,
D5#=3,
P3#=D1,
C1#=D4,
P5#=A4,
P2#=C3,
C1#=C5+1,
plusorminus(A3,P4,1),
plusorminus(A5,P2,1),
plusorminus(N5,C4,1).
plusorminus(X,Y,C):-
X#=Y-C.
plusorminus(X,Y,C):-
X#=Y+C.
mylabeling([]).
mylabeling([V|Vs]):-
myindomain(V),
write(V),write(' '),
mylabeling(Vs).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -