如何将域变量添加到global_cardinality?

Mar*_*cka 3 prolog constraint-programming sicstus-prolog clpfd

我正在尝试为global_cardinality我的程序添加约束,并在SICStus Prolog手册中写道:

global_cardinality(+ XS,+瓦尔斯)

global_cardinality(+ XS,+瓦尔斯+选项)

其中Xs = [X1,...,Xd]是整数或域变量的列表,Vals = [K1-V1,...,Kn-Vn]是对的列表,其中每个键Ki​​是唯一的整数Vi是域变量或整数.如果Xs的每个元素等于某个键,则为真,对于每对Ki-Vi,Xs的恰好Vi元素等于Ki.

现在我可以写:

global_cardinality([A,B,C], [1-2, 2-1]).
Run Code Online (Sandbox Code Playgroud)

说这个数字1会被使用两次.该号码2仅使用一次.

但我想说的是这个数字1会用到:once, twice or three times

根据手册我需要一个域变量但是它的正确语法是什么?

Mat*_*son 5

?- X in 1..3, global_cardinality([A,B,C], [1-X, 2-1]).
Run Code Online (Sandbox Code Playgroud)