约束整数除法

时间:2019-04-16 07:00:21

标签: prolog eclipse-clp

我在序言(Eclipse CLP)中有以下声明:

?-X::1..100,  X/5 #= 2, X = 12.

结果为No.。我想检查X5的整数除法是否等于2。如果我写以下语句:

?-X::1..100,  X//5 #= 2, X = 12.

我将收到以下错误:

  

//(X {1 .. 100},5,_703)中的实例错误

所以,问题是如何检查变量X的整数除法?

1 个答案:

答案 0 :(得分:0)

我假设您使用的是库(ic),该库当前不直接支持地板分割或截断分割。您可以通过引入“剩余”变量并使用乘法来重新构造条件:

?- X::1..100, Rem::0..4, X #= 5*2 + Rem, X = 13.
X = 13
Rem = 3
Yes (0.00s cpu)