prolog - Prolog将生成解决方案转换为约束?
问题描述
我有下面给出的程序,可以像使用 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
解决方案
推荐阅读
- javascript - 有什么方法可以设置 CSS 动画在例如按钮开/关上以不同的方式工作?
- android - 尝试在 null 上调用虚拟方法“java.lang.String com.google.firebase.auth.FirebaseAuth.getUid()”
- twilio - 基于 Twilio 云的函数和库
- php - 如何将 Slick Slider 脚本正确添加到 Wordpress?
- javascript - 如何在等待时遍历 Firestore 快照文档
- javascript - 键值对的胡子模板
- makefile - Gnu make:在命令中为某些目标添加标志
- solr - 从命令提示符启动 Solr 时出错
- c++ - 为什么我在查找数组中最大值的数量时出错
- mongodb - 将字段添加到 MongoDB 中的 $map 条目