生成约束解决方案的序言转换?

时间:2021-05-12 04:36:57

标签: prolog logic constraints clpfd

我有下面给出的程序,是否可以像使用 clpfd 一样将其转换为约束? (使用 sum 和 #<==>)。

liars_gt(X,L) :- length(X,Y),binary_list(Y,L),occur(L,C),multl(L,X,C).
/*Returns L*/

binary_list(0,[]).
binary_list(N,[X|Xs]) :- N > 0,member(X,[0,1]),N1 is N-1,binary_list(N1,Xs).
/* All possible binary combinations - backtracking of length N*/

occur(L,Count) :- aggregate_all(count, member(1, L), Count). /* Counts numbers of 1's in the list*/

multl([],[],_).
multl([H1|Tail1],[H2|Tail2],C):- (((H1 = 1),(H2 > C));((H1 = 0),(H2 =< C))),multl(Tail1,Tail2,C).

讨论这个想法 -> https://puzzling.stackexchange.com/questions/109733/who-is-the-liar-number-of-liars/109734#109734

0 个答案:

没有答案
相关问题