해석 된 클래스 :초코 나는 초코 솔버와 마법의 사각형 프로그램을 해결하기 위해이 코드를 발견
public static void main(String[] args) {
int n = 4;
System.out.println("Magic Square Problem with n = " + n);
Problem myPb = new Problem();
IntVar[] vars = new IntVar[n * n];
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) {
vars[i * n + j] = myPb.makeEnumIntVar("C" + i + "_" + j, 1, n * n);
}
IntVar sum = myPb.makeEnumIntVar("S", 1, n * n * (n * n + 1)/2);
myPb.post(myPb.eq(sum, n * (n*n + 1)/2));
for (int i = 0; i < n * n; i++)
for (int j = 0; j < i; j++)
myPb.post(myPb.neq(vars[i], vars[j]));
int[] coeffs = new int[n];
for (int i = 0; i < n; i++) {
coeffs[i] = 1;
}
for (int i = 0; i < n; i++) {
IntVar[] col = new IntVar[n];
IntVar[] row = new IntVar[n];
for (int j = 0; j < n; j++) {
col[j] = vars[i * n + j];
row[j] = vars[j * n + i];
}
myPb.post(myPb.eq(myPb.scalar(coeffs, row), sum));
myPb.post(myPb.eq(myPb.scalar(coeffs, col), sum));
myPb.solve();
}
그러나 클래스 '문제'는 '모델'클래스로 대체 된 것으로 보인다. Problem.makeEnumIntVar 대신 Model.intVar을 사용하는 것이 맞습니까? Problem.neq, Problem.eq 및 Problem.scalar를 대체하는 현재 함수는 무엇이겠습니까?