fd_domain([A, B, C], 0, 9), (A**(B+C)) #= ((A**B)*(A**C)).
Vielleicht einige Lösungen? Scheint ok; P ich, dass bestimmte Störung erhalte:fd_domain, Gleichung funktioniert nicht
uncaught exception: error(instantiation_error,(#=)/2)
fd_domain([A, B, C], 0, 9), (A**(B+C)) #= ((A**B)*(A**C)).
Vielleicht einige Lösungen? Scheint ok; P ich, dass bestimmte Störung erhalte:fd_domain, Gleichung funktioniert nicht
uncaught exception: error(instantiation_error,(#=)/2)
Die Power-Funktion Einschränkungen zu haben scheint. In der GNU Prolog doc Wie finden:
9.6.1 FD arithmetische Ausdrücke
http://www.gprolog.org/manual/gprolog.html#htoc329
Dass es ein Fehler ist aufgeführt:
Fehler
ein Unterausdruck von der Form _ * * E und E ist eine Variable instantiation_error
Bye
In YAP oder SWI können Sieverwenden, was auch eine Ganzzahl-Exponentiation erlaubt. Die Vermehrung ist jedoch nicht sehr stark.
?- 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....
Bitte beachten Sie, dass die Intervalle nicht auf Maschinenwortgrößen wie 2^32 oder 2^64 beschränkt sind.