问题描述
有趣的是,一些 CLP(B) 库使用 (^)/2 运算符作为存在量词。 但是存在量词没有得到应有的考虑 sat_count/2。以这两个例子为例:
?- sat(X+Y*Z),labeling([X,Y,Z]),write(X-Y-Z),nl,fail; true.
0-1-1
1-0-0
1-0-1
1-1-0
1-1-1
?- sat(Y^(X+Y*Z)),write(X-Z),fail; true.
0-1
1-0
1-1
计数是5和3。对于后面的计数,我只有通过除以二来修正sat_count/2的结果才能得到正确的结果:
?- sat_count(X+Y*Z,N).
N = 5.
?- sat_count(Y^(X+Y*Z),N),M is N//2.
N = 6,M = 3.
是否存在行为不同的 CLP(B) 实现?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)