1
我在不同的地方看到了“dot-dot”符号(..
)。在以下示例中,0..n
告诉我们决策变量的域(在这种情况下,是数组s
的条目)。MiniZinc中的'm..n`符号混淆
int: n;
array[0..n-1] of var 0..n: s;
另一个例子是在for循环:
constraint forall(i in 0..sequence_length)(
t[i] = sum(k in 0..sequence_length)((bool2int(t[k] == i)))
);
事实上,我们甚至可以这样做
par var 1..5: x
我的感觉是表达m..n
一般使用当我们定义一个变量(而不是一个参数)时,我们想要指定变量的域。但在第二种情况下,我们没有定义任何变量。那么我们什么时候使用m..n
?它究竟是什么(例如它是否有类型?)?