这给了我:
?- X is 10^10//81-1.
X = 123456789.
因此表达式提供了一个包含所有非零
位的数字。是否有另一个公式提供所有数字,
可能排列,其中公式本身没有零?
我们可以用Prolog或CLP(FD)找到这样的公式吗?
SWI-Prolog给我:
?- use_module(library(clpfd)).
true.
?- [D1,D2,D3,D4,D5,D6,D7,D8,D9] ins 1..9,
[A,B,C] ins 2..9/11..15,
A^B*C #= (((((((D1*10+D2)*10+D3)*10+D4)*10+D5)*10+D6)*10+D7)*10+D8)*10+D9,
all_different([D1,D2,D3,D4,D5,D6,D7,D8,D9]),
label([A,B,C,D1,D2,D3,D4,D5,D6,D7,D8,D9]).
D1 = C, C = 9,
D2 = 4,
D3 = 8,
D4 = B, B = 7,
D5 = 2,
D6 = 1,
D7 = 5,
D8 = 3,
D9 = 6,
A = 14 ;
false.
?- X is 14^7*9.
X = 948721536.