例如,我有一个保险箱,需要回答长度为5(XXXXX)的数字,但您只使用1,2,3。所以一些连击可能是1,2,3&1,1,1&1,1,2等等...但是我需要找到所有可能性。
我集思广益,我想我需要找到三个数字的所有组合的所有排列,但我不知道如何找到5号的答案。
如果仅是三个数字,答案是长度3,我只能使用置换函数,但这不起作用,因为我需要它的大小大于所用元素的大小。
clpfd没问题!
?-use_module(library(clpfd))。真正。?-length(Zs,5),Zs ins 1..3,标记([],Zs)。Zs = [1、1、1、1、1]; Zs = [1、1、1、1、2]; Zs = [1、1、1、1、3]; Zs = [1、1、1、2、1]; Zs = [1、1、1、2、2]; Zs = [1、1、1、2、3]; Zs = [1、1、1、3、1]; Zs = [1、1、1、3、2]; Zs = [1、1、1、3、3]; Zs = [1,1,2,1,1]...