Допустим, я хочу подсчитать количество 80 подмножеств элементов {1,2, .. 100}, чтобы их сумма была 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
, который позволяет мне подсчитывать решения, а не искать их?