如果
a+b+c=1
a^2+b^2+c^2=2
a^3+b^3+c^3=3
Run Code Online (Sandbox Code Playgroud)
然后
a^4+b^4+c^4=?
Run Code Online (Sandbox Code Playgroud)
我知道结果是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
Run Code Online (Sandbox Code Playgroud)
不幸的是,使用Prolog作为数值求解器并非易事.
?- X is 1 + 2*X.
Run Code Online (Sandbox Code Playgroud)
当答案看起来非常明显时,会引发同样的错误.
虽然Prolog能够钻取其知识库以神奇地解决逻辑问题,但它不能对数字做同样的事情.问题不仅是大多数常见数字集的无穷大而且还有连续性(即1.1234567890123456789之后出现了什么数字?).
所以,简而言之:即使在Prolog中,我也不相信有可能编写一个简单的程序来解决这个问题.
但是,有一些尝试在Prolog中实现了一些数值解算器(参见右上角的缓存版本).
| 归档时间: |
|
| 查看次数: |
5132 次 |
| 最近记录: |