Prolog算法

Prolog算法,prolog,clpfd,Prolog,Clpfd,如果我有以下SWI Prolog查询和答案 [A,B,C] ins 1..3, A#= B + C. 需要从以下不正确的选项中进行选择: A in 2..3, B in 1..3, C in 1..3. 我认为2..3中的A是不可能的,因为A=3在任何情况下都是不可能的。实际上,约束的作用是减少B和C的域 因为它们的总和必须在范围1..3内,并且两者都具有范围1..3。它们必须假定范围1..2中的值 然后,2..3中的A这是唯一正确的答案。这里只有一个答案。你是什么意思?这个查询返回的是2.

如果我有以下SWI Prolog查询和答案

[A,B,C] ins 1..3, A#= B + C.
需要从以下不正确的选项中进行选择:

A in 2..3,
B in 1..3,
C in 1..3.

我认为2..3中的A是不可能的,因为A=3在任何情况下都是不可能的。实际上,约束的作用是减少B和C的域

因为它们的总和必须在范围
1..3
内,并且两者都具有范围
1..3
。它们必须假定范围
1..2
中的值


然后,
2..3中的A
这是唯一正确的答案。

这里只有一个答案。你是什么意思?这个查询返回的是
2..3中的A,A#=B+C,1..2中的B,1..2中的C
,而不是你所得到的,如果你想
A
B
C
不同,你必须这样说,比如说有一个
所有不同的
约束。