我必须将一个多重集划分为两个总和相等的集合。例如,给定多重集:
1 3 5 1 3 -1 2 0
我会输出两组:
1) 1 3 3
2) 5 -1 2 1 0
两者之和为 7。
我需要使用 Z3(smt2 输入格式)和“线性算术逻辑”来执行此操作,其定义为:
formula : formula /\ formula | (formula) | atom
atom : sum op sum
op : = | <= | <
sum : term | sum + term
term : identifier | constant | constant identifier
老实说,我不知道从哪里开始,任何建议都将不胜感激。
问候。