gpt4 book ai didi

python - z3 smt 求解器采用什么形式的输入?如何使用文件读取需要求解的方程?

转载 作者:行者123 更新时间:2023-12-01 05:41:40 31 4
gpt4 key购买 nike

from z3 import *
x = Int('x')
y = Int('y')
s = Solver()
try:
f = open("read.txt","r")
try:
str = f.read()
length = len(str)
s.add(str)
finally:
f.close()
except IOError:
pass

我写了上面的代码,但它不起作用。它不接受字符串作为输入,我无法找到它接受哪种输入。

最佳答案

我们基本上可以按照 martineau 的建议进行操作。请记住,这是一个很大的黑客行为并且不安全,因为文件 read.txt 可能包含任意 Python 命令。无论如何,下面的代码将评估输入文件的每一行,并将结果对象添加到求解器 s 中。如果文件 read.txt 包含 x + y == 2,则输出将为:

sat
[y = 0, x = 2]

这是更新后的代码:

from z3 import *
x = Int('x')
y = Int('y')
s = Solver()
try:
f = open("read.txt","r")
try:
for l in f:
s.add(eval(l))
finally:
f.close()
except IOError:
pass
print s.check()
print s.model()

另一个解决方案是创建 SMT-LIB 2.0 格式的文件,并使用以下帖子中描述的方法:

关于python - z3 smt 求解器采用什么形式的输入?如何使用文件读取需要求解的方程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17380725/

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