我在 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 等是什么意思?
非常感谢您提供的任何指导。