"SEND MODE MONEY"のPrologコードを書き込もうとしていました。これまでのところ、私が得た次暗号演算処理
?- puzzle([S,E,N,D] + [M,O,R,E] = [M,O,N,E,Y]).
[ 9 , 5 , 6 , 7 ] + [ 1 , 0 , 8 , 5 ] = [ 1 , 0 , 6 , 5 , 2 ] ;
S = 9,
E = 5,
N = 6,
D = 7,
M = 1,
O = 0,
R = 8,
Y = 2.
をしかし、私はない、私はそれを行うことができますどのように始めに終わりリストを印刷する次のよう
:- use_module(library(clpfd)).
puzzle([S,E,N,D] + [M,O,R,E] = [M,O,N,E,Y]) :-
Vars = [S,E,N,D,M,O,R,Y],
Vars ins 0..9,
all_different(Vars),
S*1000 + E*100 + N*10 + D + M*1000 + O*100 + R*10 + E
#= M*10000 + O*1000 + N*100 + E*10 + Y,
M #\= 0,
S #\= 0,
label([S,E,N,D,M,O,R,Y]),
format('~s ~w ~s ~w ~s ~w ~s ~w ~s ~s ~s ~w ~s ~w ~s ~w ~s ~w ~s ~s ~s ~w ~s ~w ~s ~w ~s ~w ~s ~w ~s ~s',
[ "[", S, ",", E, ",", N, ",", D, "]",
"+", "[", M, ",", O, ",", R, ",", E, "]",
"=", "[", M, ",", O, ",", N, ",", E, ",", Y, "]", ";" ]).
出力がありますか?
私が取得する必要があり、出力は次のようになります。
?- puzzle([S,E,N,D] + [M,O,R,E] = [M,O,N,E,Y]).
S = 9,
E = 5,
N = 6,
D = 7,
M = 1,
O = 0,
R = 8,
Y = 2.
[ 9 , 5 , 6 , 7 ] + [ 1 , 0 , 8 , 5 ] = [ 1 , 0 , 6 , 5 , 2 ] ;
ありがとうございました。
しかし、このリストを印刷することは句の一部であり、printintは変数ではありません。 –
私はちょうどその方法で出力を表示したい、どうすればいいのですか? – Pramod
代わりに、 '? - puzzle(Puzzle)。'への美しい答えを見てください! – false