2014-05-16 1 views
0

내 프롤로그 코드가이 곱셈 문제에 대해 작동한다고 생각하지만 false를 반환합니다. 내가 놓친 게 있니?false를 반환하는 암호 연산 곱셈

solve(T,W,O,S,I,X,E,L,V) :- 
     X = [T,W,O,S,I,X,E,L,V], 
     Digits = [0,1,2,3,4,5,6,7,8,9], 
     assign_digits(X, Digits), 
     T > 0, 
     S > 0, 
     (100*T + 10*W + O) * (100*S + 10*I + X) =:= 
     100000*T + 10000*W + 1000*E + 100*L + 10*V + E, 
     write(X). 

답변

3

숫자와 변수 목록에 동일한 변수 X를 사용했습니다.

그냥 모든 변수의 목록을 나타내는 변수의 이름을 바꿉니다

solve(T,W,O,S,I,X,E,L,V) :- 
     Vars = [T,W,O,S,I,X,E,L,V], 
     Digits = [0,1,2,3,4,5,6,7,8,9], 
     assign_digits(Vars, Digits), 
     T > 0, 
     S > 0, 
     (100*T + 10*W + O) * (100*S + 10*I + X) =:= 
     100000*T + 10000*W + 1000*E + 100*L + 10*V + E, 
     write(Vars). 
+0

오 와우, 나는 그것을 놓친 믿을 수 없다. 감사. 그것은 지금 작동합니다 :) – user2318083