【发布时间】:2019-05-25 22:55:53
【问题描述】:
我正在使用 z3py,我有一个大小为 3 的 IntVector。我需要将 IntVector 中的每个数字解析为一个整数。意思是,如果我有一个IntVector,它有这样的约束:
myIntVector = IntVector('iv', 3)
s = Solver()
s.add(iv[0] == 5)
s.add(iv[1] == 2)
s.add(iv[2] == 6)
….
我需要能够在 z3 中将数字 526 作为 Int 排序进行操作,因为我需要添加适用于 IntVector(数字)的每个单独成员的约束和适用于整体的约束数字,在这种情况下是 526。我不能这样做:
s.add(iv[0] / iv == 55)
因为它们是两种不同的类型。 iv[0] 是 Int 而 iv 是 IntVector
【问题讨论】:
-
100*iv[0] + 10*iv[1] + iv[2]有什么问题? -
这个想法闪过我的脑海,但我不确定是否有更惯用的转换。我想我也可以在 python 中编写一个扩展函数来处理这个问题。