gpt4 book ai didi

z3 - 如何使用 z3 BitVec 或 Int 作为数组索引?

转载 作者:行者123 更新时间:2023-12-04 03:00:42 24 4
gpt4 key购买 nike

我想使用 Int 向量作为数组索引。

Python。

array = [12,45,66,34]
s= Solver()
x = Int('x')
s.add(array[x] == 66)

所以 x 应该是 2..

我该怎么做?

最佳答案

这是一种方法:

from z3 import *

s = Solver ()

array = [12, 45, 66, 34]

A = Array ('A', IntSort(), IntSort())
i = 0
for elem in array:
A = Store(A, i, elem)
i = i + 1

x = Int ('x')
s.add(x >= 0)
s.add(x < len(array))
s.add(Select(A, x) == 66)

if s.check() == sat:
print s.model()
else:
print "Not found!"

这打印:
$ python a.py
[x = 2]

关于z3 - 如何使用 z3 BitVec 或 Int 作为数组索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49474310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com