SWI-Prolog 프로그램을 컴파일하려고하지만 계속 test is always true, var (sum) error on line 7
이됩니다. 나는 이것이 무엇을 의미하는지 파악할 수 없다. 누군가 도와 주실 수 있습니까? 이것은 궁극적으로 라틴어 사각형을 해결하기를 희망하는 프로그램입니다. 고맙습니다. 행이 1
및 3
세 사이의 정수로 구성되며, 이들 정수는 구별되어야하는 경우프롤로그 테스트는 항상 true입니다. var (합계) 오류
:- use_module(library(clpfd)).
magic_counter(Count) :-
findall(a, magic_1(_Soln), As),
length(As, Count).
magic_1(Soln) :-
Row1 = [W1, W2, W3],
Row2 = [X1, X2, X3],
Row3 = [Y1, Y2, Y3],
Row1 ins 1..3,
Row2 ins 1..3,
Row3 ins 1..3,
Sum #= 6,
all_different(Row1),
all_different(Row2),
all_different(Row3),
all_different([W1,X1,Y1]),
all_different([W2,X2,Y2]),
all_different([W3,X3,Y3]),
W1 + W2 + W3 #= Sum,
X1 + X2 + X3 #= Sum,
Y1 + Y2 + Y3 #= Sum,
W1 + X1 + Y1 #= Sum,
W2 + X2 + Y2 #= Sum,
W3 + X3 + Y3 #= Sum,
append(Row1,Row2,Row12),
append(Row12,Row3,Soln),
labeling([], Soln).
안녕하십니까. 나는 프롤로그에 아주 새롭다. Sum # = 6을 주석 처리하면 여전히 동일한 오류가 발생합니다. (어쩌면 내가 그것을 언급하는 의미가 아니에요?) 난 주문 n에 대한 라틴 사각형을 해결하고 싶습니다 그래서 내 제약이 있어야할지 모르겠다. 다시 감사합니다 – CompilerSaysNo