数独的问题,在线等
prolog吧
全部回复
仅看楼主
level 4
填一张6*6的表格,我做半天,运行时候运行不出,
sudoku(X1,X2,X3,X4,X5,X6,X7,X8,X9,X,X11,X12,X13,X14,X15,X16,X17,X18,X19,X20,X21,X22,X23,X24,X25,X26,X27,X28,X29,X30,X31,X32,X33,X34,X35,X36)
:-
X2 is 4, X4 is 2, X7 is 3,X9 is 1, X13 is 6,X24 is 6, X30 is 2,
X33 is 3,X34 is 6,X35 is 1,
permutation([X1,X2,X3,X4,X5,X6],[1,2,3,4,5,6]),
permutation([X7,X8,X9,X,X11,X12],[1,2,3,4,5,6]),
permutation([X13,X14,X15,X16,X17,X18],[1,2,3,4,5,6]),
permutation([X19,X20,X21,X22,X23,X24],[1,2,3,4,5,6]),
permutation([X25,X26,X27,X28,X29,X30],[1,2,3,4,5,6]),
permutation([X31,X32,X33,X34,X35,X36],[1,2,3,4,5,6]),
permutation([X1,X7,X13,X19,X25,X31],[1,2,3,4,5,6]),
permutation([X2,X8,X14,X20,X26,X32],[1,2,3,4,5,6]),
permutation([X3,X9,X15,X21,X27,X33],[1,2,3,4,5,6]),
permutation([X4,X,X16,X22,X28,X34],[1,2,3,4,5,6]),
permutation([X5,X11,X17,X23,X29,X35],[1,2,3,4,5,6]),
permutation([X6,X12,X18,X24,X30,X36],[1,2,3,4,5,6]),
permutation([X1,X2,X3,X7,X8,X9],[1,2,3,4,5,6]),
permutation([X4,X5,X6,X,X11,X12],[1,2,3,4,5,6]),
permutation([X13,X14,X15,X19,X20,X21],[1,2,3,4,5,6]),
permutation([X16,X17,X18,X22,X23,X24],[1,2,3,4,5,6]),
permutation([X25,X26,X27,X31,X32,X33],[1,2,3,4,5,6]),
permutation([X28,X29,X30,X34,X35,X36],[1,2,3,4,5,6]).
2015年04月26日 02点04分 1
level 1
效率的关键在于 假定一个值,到否定一个值 ,这之间的距离.
相关的变量,在相对较少的循环内,能排除所有不符合的值, 可以减少运行时间.
2015年09月02日 08点09分 4
level 1
member(A,[A|_]).
member(A,[_|B]):- member(A,B).
subs([],_). /*空集是所有集合的子集*/
subs([H|A],B):- member(H,B),subs(A,B). /*如果H是B集合的一个元素,A是B的子集,那么H和A组成的新的集合,是B的子集*/
sames(A,B):- subs(A,B),subs(B,A). /*两个集合互为子集,则相等*/
sudoku([X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,X14,X15,X16,X17,X18,X19,X20,X21,X22,X23,X24,X25,X26,X27,X28,X29,X30,X31,X32,X33,X34,X35,X36])
:-
X2 is 4, X4 is 2, X7 is 3,X9 is 1, X13 is 6,X24 is 6, X30 is 2,
X33 is 3,X34 is 6,X35 is 1,
sames([X1,X2,X3,X4,X5,X6],[1,2,3,4,5,6]),
sames([X1,X2,X3,X7,X8,X9],[1,2,3,4,5,6]),
sames([X4,X5,X6,X10,X11,X12],[1,2,3,4,5,6]),
sames([X7,X8,X9,X10,X11,X12],[1,2,3,4,5,6]),
sames([X13,X14,X15,X16,X17,X18],[1,2,3,4,5,6]),
sames([X13,X14,X15,X19,X20,X21],[1,2,3,4,5,6]),
sames([X1,X7,X13,X19,X25,X31],[1,2,3,4,5,6]),
sames([X2,X8,X14,X20,X26,X32],[1,2,3,4,5,6]),
sames([X3,X9,X15,X21,X27,X33],[1,2,3,4,5,6]),
sames([X4,X10,X16,X22,X28,X34],[1,2,3,4,5,6]),
sames([X5,X11,X17,X23,X29,X35],[1,2,3,4,5,6]),
sames([X6,X12,X18,X24,X30,X36],[1,2,3,4,5,6]),
sames([X16,X17,X18,X22,X23,X24],[1,2,3,4,5,6]),
sames([X19,X20,X21,X22,X23,X24],[1,2,3,4,5,6]),
sames([X25,X26,X27,X28,X29,X30],[1,2,3,4,5,6]),
sames([X25,X26,X27,X31,X32,X33],[1,2,3,4,5,6]),
sames([X28,X29,X30,X34,X35,X36],[1,2,3,4,5,6]),
sames([X31,X32,X33,X34,X35,X36],[1,2,3,4,5,6]).
2015年09月02日 08点09分 5
1