fd_domain([A, B, C], 0, 9), (A**(B+C)) #= ((A**B)*(A**C)).
也许有些解决方案?似乎确定,P 我收到的特定错误:fd_domain,方程不起作用
uncaught exception: error(instantiation_error,(#=)/2)
fd_domain([A, B, C], 0, 9), (A**(B+C)) #= ((A**B)*(A**C)).
也许有些解决方案?似乎确定,P 我收到的特定错误:fd_domain,方程不起作用
uncaught exception: error(instantiation_error,(#=)/2)
电源功能似乎有局限性。在GNU Prolog的DOC魏某发现:
9.6.1 FD算术表达式
http://www.gprolog.org/manual/gprolog.html#htoc329
即没有列出一个错误条件:
错误
子表达式的形式为_ * * E和E是一个变量instantiation_error
再见
在YAP或SWI,您可以使用library(clpfd)
也允许整数求幂。然而,传播不是很强。
?- use_module(library(clpfd)). ?- [A,B,C] ins 0..9, A^(B+C) #= A^B*A^C. A in 0..9, A^C#=_A, A^B#=_B, A^_C#=_D, C in 0..9, B+C#=_C, B in 0..9, _B*_A#=_D, _C in 0..18 ?- abs(X) #=< 7^7^7. X in -37598235267....
请注意,间隔不限于2^32或2^64等机器字大小。