prolog - 如何通过prolog处理公式?

标签 prolog formula

如果

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/

相关文章:

parsing - Prolog - 带有文件输入的 DCG 解析器

excel - =sum 中的多个条件

sql - 在 Netsuite 保存的搜索中修剪或替换

algorithm - 计算设置了 N 或更多位的行数

excel - 使用条件计算唯一值

prolog - 扩展统一,SICStus 风格

prolog - 单例变量错误

序言:修复多个答案(使用剪切?)

prolog - 在序言中的真实答案后不停止

google-sheets - 如何在 Google 电子表格中显示列索引?