List 长度为N的Prolog二进制数

List 长度为N的Prolog二进制数,list,binary,prolog,List,Binary,Prolog,我如何创建一个谓词来登记长度为N的二进制数的所有可能组合 示例->如果长度N=3,则输出为 L=[0,0,0] L=[0,0,1] L=[0,1,0] L=[0,1,1] L=[1,0,0] L=[1,0,1] L=[1,1,0] L=[1,1,1] false长度(L,N),L英寸0..1,标签([],L)使用库(clpz)或库(clpfd)如果我想在没有任何库的情况下做这件事,还有一个好名字(呵呵)。 binary_list(0,[]). binary_list(N,[X|Xs]) :-

我如何创建一个谓词来登记长度为N的二进制数的所有可能组合

示例->如果长度N=3,则输出为

L=[0,0,0]

L=[0,0,1]

L=[0,1,0]

L=[0,1,1]

L=[1,0,0]

L=[1,0,1]

L=[1,1,0]

L=[1,1,1]


false

长度(L,N),L英寸0..1,标签([],L)
使用
库(clpz)
库(clpfd)
如果我想在没有任何库的情况下做这件事,还有一个好名字(呵呵)。
binary_list(0,[]).
binary_list(N,[X|Xs]) :-
    N > 0,
    member(X,[0,1]),
    N1 is N-1,
    binary_list(N1,Xs).