所有恰好有 n 位的二进制数
我需要一个谓词来生成列表中长度为 N 的所有二进制数。
使用示例:
?- bins(2,L).
L = [[0,0], [0,1], [1,0], [1,1]]. % expected result
I need a predicate to produce all binary numbers with length N
in a list.
Sample use:
?- bins(2,L).
L = [[0,0], [0,1], [1,0], [1,1]]. % expected result
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
无需使用
findall/3
!我们基于 clpfd 定义
bins/2
,foldl/4
, Prolog lambda、if_/3
、和(#<)/3
。使用示例:
这是最常见的查询:
No need to use
findall/3
!We define
bins/2
based on clpfd,foldl/4
, Prolog lambdas,if_/3
, and(#<)/3
.Sample use:
Here is the most general query:
可能有更好的方法,但这是使用 findall 的解决方案
There are probably better ways, but here is a solution using findall
或者:
可以使用 lambda 进行简化模块 :
Alternatively :
Could be simplified with the use of the lambda module :