是否可以延迟分配操作

时间:2019-05-25 18:33:39

标签: prolog constraints eclipse-clp

我有一个小的脚本/代码,我想施加一些binom约束。在下面显示的代码中,我有>>> import scipy.stats as scs >>> print(scs.binom.pmf(2, 5, .5)) 0.3125 ,在下一行>>> trials = 0 >>> n = 5 >>> r = 2 >>> p = .5 >>> for i in range(r): trials += scs.binom.pmf(i, n, p) r_or_more = 1 - trials 中,但这是抛出active的原因,因为P[I,J] #= E未实例化。

对于这些约束,我需要知道Result[I,E] #= J处的值,因此,如果我将其写为instantiation error,那么当然我不会得到E,但会影响约束,因为P[I,J]不会被延迟,只有约束会被延迟。有没有其他方法可以施加此约束?

E is P[I,J]

1 个答案:

答案 0 :(得分:1)

如果您可以按照自己的方式编写它,那就太好了,但是不幸的是,当前不支持(假设您使用的是ECLiPSe)。如果在约束设置时未实例化数组索引E,则必须使用element/3约束。所以,而不是

ResultFirst[I,E] #= J

element(E, ResultFirst[I], J)