【发布时间】:2021-12-09 11:44:39
【问题描述】:
我正在尝试学习 Z3,但下面的例子让我感到困惑:
from z3 import *
a = Int("a")
b = Int("b")
print(solve(2**a <= b))
print(solve(a > 0, b > 0, 2**a <= b))
我希望它返回“[a = 1, b = 2]”,但它反而返回“未能解决”。
为什么不能解决?
是否可以在 Z3 中使用幂和对数进行计算?我如何找到一个数字的二进制字符串表示的长度(log base 2)?
【问题讨论】: