您必须将方程分解为子方程和附加变量。这可以在使用表达式时由 Choco-solver 自动完成。
Model model = new Model();
IntVar A1 = model.intVar(1, 10);
IntVar A2 = model.intVar(1, 10);
IntVar B1 = model.intVar(1, 10);
IntVar B2 = model.intVar(1, 10);
((A1.mul(B1)).add(A2.mul(B2))).div((B1.add(B2))).eq(10);
model.getSolver().solve();
或者,您可以自己声明其他变量和子方程:
Model model = new Model();
IntVar A1 = model.intVar(1, 10);
IntVar A2 = model.intVar(1, 10);
IntVar B1 = model.intVar(1, 10);
IntVar B2 = model.intVar(1, 10);
IntVar C1 = model.intVar(2, 20);
model.arithm(A1, "*", B1, "=", C1).post();
IntVar C2 = model.intVar(2, 20);
model.arithm(A2, "*", B2, "=", C2).post();
IntVar C3 = model.intVar(2,20);
model.arithm(C1, "+", C2, "=", C3).post();
IntVar C4 = model.intVar(2,20);
model.arithm(B1, "+", B2, "=", C4).post();
model.arithm(C3, "/", C4, "=", 10).post();
model.getSolver().solve();
model.getSolver().printShortStatistics();