1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| public static void main(String args[])
{
int solution = 13;
int[] varsM = new int[] {5, 3, 8, 13, 1, 2, 9, 4};
IntegerVariable sum = Choco.makeIntVar("s", 1, 7);
for (int k = 1; k < varsM.length; k++)
{
System.err.println("Nombre de termes : "+k);
Model m = new CPModel();
Solver s = new CPSolver();
IntegerVariable[] vars = Choco.makeIntVarArray("Vars", k, varsM);
m.addConstraint(Choco.allDifferent(vars));
m.addConstraint(Choco.eq(solution, Choco.sum(vars)));
// m.addConstraint(Choco.increasingSum(vars, sum));
m.addConstraint(Choco.increasingNValue(sum, vars));
s.read(m);
s.solve();
if (s.isFeasible())
{
int cpt =1;
do
{
System.err.print((cpt++)+ " - "+ solution+" = " + s.getVar(vars[0]).getVal());
for (int i = 1; i < vars.length; i++)
System.err.print(" + " + s.getVar(vars[i]).getVal());
System.err.println();
}
while (s.nextSolution()!=false);
} else
System.err.println("Impossible");
}
} |
Partager