Z3 约束器 使用

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from z3 import *
# 创建约束解析器
solver = Solver()
# 定义变量
m1 = Int('m1')
m2 = Int('m2')
m3 = Int('m3')
m4 = Int('m4')
m5 = Int('m5')
m6 = Int('m6')
m7 = Int('m7')
# 添加约束条件
# 参数前7个ascii等于0x321
solver.add(m1+m2+m3+m4+m5+m6+m7==0x321)
# 约束每个解的范围都是在可见字符串
solver.add(32<=m1)
solver.add(m1<127)
solver.add(32<=m2)
solver.add(m2<127)
solver.add(32<=m3)
solver.add(m3<127)
solver.add(32<=m4)
solver.add(m4<127)
solver.add(32<=m5)
solver.add(m5<127)
solver.add(32<=m6)
solver.add(m6<127)
solver.add(32<=m7)
solver.add(m7<127)
if solver.check() == sat:
    flag = solver.model()
    print(flag)
else:
    print("no answer")
原文地址:https://www.cnblogs.com/zw7889/p/13596728.html