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