微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我有下面给出的程序,是否可以像使用 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,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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。