PYP
CQB
CBCW
-----
WXYPB
其中每个字母代表 0-9 之间的唯一数字,行下方的值表示关于它的值的总和。
查看非常相关的问题 Prolog 中更快地实现口头算术。
根据我之前的回答,让我们使用 clpfd 求解您的特定方程!
?- Eq = ([P,Y,P] + [C,Q,B] + [C,B,C,W] #= [W,X,Y,P,B]),
crypt_arith_(Eq,Zs),
labeling([],Zs).
Eq = ([9,3,9]+[8,7,5]+[8,5,8,1]#=[1,0,3,9,5]),
Zs = [9,3,8,7,5,1,0],
P = 9,
Y = 3,
C = 8,
Q = 7,
B = 5,
W = 1,
X = 0 ;
false.