Напишите программу Prolog, которая решает следующую арифметическую головоломку

  PYP
  CQB
 CBCW
-----
WXYPB

где каждая буква представляет собой уникальную цифру от 0 до 9, а значение под строкой представляет сумму тех, кто об этом.

1 ответ

Проверьте очень связанный вопрос Более быстрая реализация словесной арифметики в Прологе.

Основываясь на моем предыдущем ответе, давайте решим ваше конкретное уравнение, используя 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.
Другие вопросы по тегам