gpt4 book ai didi

prolog - Prolog 中的算术

转载 作者:行者123 更新时间:2023-12-02 09:00:06 24 4
gpt4 key购买 nike

如果我有

A in 0..4, A * A #=A.

有没有可能

A in 0..1.

我会说不,因为0*0 = 0,而1*1 = 1,所以这两个不能是A?

提前谢谢您。

最佳答案

您在这里问的是关于 CLPFD 系统的一致性。一般来说,系统会尝试通过不同类型的一致性与速度权衡来“尽可能地”保持一致性。但大多数时候他们只提供安全的近似值。然而,在本例中,一切似乎都很完美(此处使用 SICStus):

?- A in 0..4, A * A #=A.
clpfd:(A*A#=A), A in 0..1.

因此,我们得到的答案是:是的,只要 clpfd(:A*A#=A), A in 0..1 为真,就有解决方案。 先验我们不能说情况是否如此,但我们可以尝试一下:

?- A in 0..4, A * A #=A, A = 1.
A = 1.
?- A in 0..4, A * A #=A, A = 0.
A = 0.

所以:0 和 1 都是一个解,因此 A in 0..1 是一个完美的答案!

顺便说一句,您在 SICStus、SWI、B 和 GNU 中得到(本质上)相同的答案。

关于prolog - Prolog 中的算术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23714580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com