Prologで次のタスクがあります。
次の積が成り立つように、数字への文字の割り当て (各文字が異なる数字へ) を見つけます。
EAU * EAU = オーシャン
このコードが次のような場合:
:- use_module(library(clpfd)).
ocean(L) :-
L = [O,C,E,A,N],
L2 = [U|L],
all_different(L2),
L2 ins 0..9,
EAU #= E*100 + A*10 + U,
OCEAN #= O*10000 + C * 1000 + E*100 + A*10 + N,
EAU * EAU #= OCEAN,
labeling([], L2).
誰かが次のことを説明してもらえますか:
L2 ins 0..9 の意味は何ですか (これらの数値の間の範囲はなぜですか?)
*10000 + C * 1000 + E*100、E*100 + A*10 + U などの特定の数字を文字に掛けることの意味は何ですか?
提供されたガイダンスについて、事前に感謝します。