2
例如:我有一些变量:A,B,C,D和一个条件:in [ A,B,C,D]列表必须有至少两倍的数字2. 我只能使用global_cardinality/2组合约束。prolog:如何用global_cardinality判断一个列表中至少有N个元素等于M(M,N是整数)
例如:我有一些变量:A,B,C,D和一个条件:in [ A,B,C,D]列表必须有至少两倍的数字2. 我只能使用global_cardinality/2组合约束。prolog:如何用global_cardinality判断一个列表中至少有N个元素等于M(M,N是整数)
好吧,这是一个相当愚蠢的问题。解决方案是,例如: global_cardinality(VarList,[1 -_,2-M]),M> = 2.因此,我们没有对VarList有多少个1号码有任何约束,但我们给出了数字数字2,即M,并且让M大于2.
很好,除了“> =”不是一个约束,而是一个Prolog测试。将它替换为“#> =”,一切都应该没问题。 –
是的,没错,谢谢! – lyra42