假设我想计算 {1,2,..100} 的 80 个元素子集的数量,使得它们的总和为 3690。
我有以下模型:
array[1..100] of var 0..1: b;
constraint (sum (i in 1..100) (i*b[i])) == 3690;
constraint (sum (i in 1..100) (b[i])) == 80;
solve satisfy;
要计算解决方案的总数,我运行
$ ./minizinc --all-solutions ~/Documents/code/xmas.mzn > sol.out
$ wc -l sol.out
本质上,我打印出所有的解决方案并计算它们。有没有更简单的 minizinc 语句,而不是solve satisfy
让我计算解决方案而不是找到它们?