我们可以限制 z3 中每个变量的取值范围吗?
Can we restrict a range of values for each variable in z3?
比如我有一个约束条件x + y > 100
。我不希望 z3 将 x
的值设为 1 或 2,并且我不希望 z3 将 y
的值也设为 1 或 2。
因此,x 和 y 可以是除 1 或 2 之外的任何数字。
我们可以对 z3 实施这样的限制吗?
谢谢!
当然.. 只需断言x > 2 AND y > 2
。在 z3py 中:
from z3 import *
x = Int('x')
y = Int('y')
s = Solver()
s.add (x > 2)
s.add (y > 2)
s.add (x+y > 100)
s.check()
print s.model()
Z3 打印:
$ python a.py
[y = 3, x = 98]
比如我有一个约束条件x + y > 100
。我不希望 z3 将 x
的值设为 1 或 2,并且我不希望 z3 将 y
的值也设为 1 或 2。
因此,x 和 y 可以是除 1 或 2 之外的任何数字。
我们可以对 z3 实施这样的限制吗?
谢谢!
当然.. 只需断言x > 2 AND y > 2
。在 z3py 中:
from z3 import *
x = Int('x')
y = Int('y')
s = Solver()
s.add (x > 2)
s.add (y > 2)
s.add (x+y > 100)
s.check()
print s.model()
Z3 打印:
$ python a.py
[y = 3, x = 98]