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