如果
a+b+c=1
a^2+b^2+c^2=2
a^3+b^3+c^3=3
然后
a^4+b^4+c^4=?
我知道结果是25/6,但是如何通过prolog计算它?
我尝试过但失败了:
[1] 5 ?- A+B+C=:=1,A**2+B**2+C**2=:=2,A**3+B**3+C**3=:=3.
ERROR: Unhandled exception: =:=/2: Arguments are not sufficiently instantiated
最佳答案
不幸的是,使用 Prolog 作为数值求解器并非易事。
?- X is 1 + 2*X.
会引发完全相同的错误,而答案看起来很明显。
虽然 Prolog 能够钻取其知识库来神奇地解决逻辑问题,但它无法对数字做同样的事情。 这里的问题不仅在于最常见数字集的无穷大,还在于连续性(即 1.1234567890123456789 之后是什么数字?)。
所以,简而言之:我不相信可以编写一个简单的程序来解决这个问题,即使是在 Prolog 中也是如此。
但是,已经有some attempts to implement some numeric solvers in Prolog(参见右上角的缓存版本)。
关于prolog - 如何通过prolog处理公式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1988325/