我想解决 ax ^ 2 + bx + c> 0型不等式问题使用prolog。
我可以使用此编码来解决问题。 2
:-use_module(library(fd)).
compute(L=R, X) :-
term_variables(L, [X]),
L #= R.
答案 0 :(得分:0)
据我所知,首先library(clpfd)
(不是fd
)是一个有限域求解器。因此,您需要提供有限域。
其次,你提供了一个等式约束,你应该提供一个不等式约束。
示例:强>
:- use_module(library(cplfd)).
compute(L=R,X,Low,High) :-
term_variables(L, [X]),
X in Low..High,
L #> R,
label([X]).
或者当没有域名时:
compute(L=R,X) :-
term_variables(L,[X]),
L #> R.
然后实例化:
?- compute(5*X*X-2*X+7=0,X).
2*X#=_G1114,
_G1128*X#=_G1126,
5*X#=_G1128,
_G1152+_G1114#=_G1126,
_G1152 in -6..sup,
_G1152+7#=_G1174,
_G1174 in 1..sup.