如何在Prolog中使用DCG生成长度为n-1的所有二进制字符串的语言

帐户随机
z(1) --> [].
z(N) --> [0] , z(Nm), {N is Nm+1}.
z(N) --> [1] , z(Nm), {N is Nm+1}. 

到目前为止,这就是我所拥有的。我想产生

[0,0]
[0,1]
[1,0]
[1,1]

但在[0,0]之后进入无限循环

当您查询

?- z(3, X, []).
斯拉戈

如果您将始终以N为整数调用谓词,则可以尝试:

z(1) --> [].
z(N) --> [0] , {N>1, Nm is N-1}, z(Nm).
z(N) --> [1] , {N>1, Nm is N-1}, z(Nm).

结果:

?- z(3, X, []).
X = [0, 0] ;
X = [0, 1] ;
X = [1, 0] ;
X = [1, 1] ;
false.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在python中从给定的模式(通配符)生成所有二进制字符串

仅生成长度为n且最大k个连续零的二进制字符串

将所有大小为n的二进制字符串生成为布尔数组的最快方法?

如何对一组二进制字符串中的无序对的所有乘积求和

Linux-如何递归搜索所有非二进制(文本)文件以查找特定字符串

如何拆分(以特定的二进制值包含二进制的字符串?

二进制字符串长度 mod 64

如何从二进制字符串创建PDF?

二进制子字符串的certian长度的每个子字符串应至少具有一个'1'字符

使用递归在Python中生成给定长度的所有二进制字符串的最佳方法是什么?

创建以n 1结尾的二进制字符串

如何以1和0的字符串序列读取二进制文件?

确保使用二进制字符串收敛到0,而不是-1

如何测试二进制字符串是否有效的UTF8?

如何在不转换数字的情况下按顺序(递增)生成所有二进制字符串(递增)至 2^63?

如何在Java中有效地将二进制字符串转换为二进制字节数组?

为什么 javascript 按位 & 在二进制数上会增加二进制字符串的长度

R将字符串从6位二进制解码为8位二进制

有人知道如何使用二维字符串数组进行二进制搜索吗?

如何将二进制字符串的文字字符串表示形式转换为二进制字符串?

如何将此二进制字符串转换为普通字符串?

使用k个查询在二进制字符串中找到最长为1的最长子字符串的长度

如何在Java中检查字符串是否为二进制

如何在Python中将大负数打包为二进制字符串

长度为60的二进制字符串-最紧凑的存储方式

如何将二进制整数转换为十六进制字符串?

如何将二进制字符串转换为十进制?

如何将二进制字符串值转换为十进制

将十六进制字符串转换为二进制并使用netcat发送