库记录

来源:互联网 发布:unity 房卡 麻将源码 编辑:程序博客网 时间:2024/05/24 05:10

一、标准库


二、第三方

1、Sympy

解方程。

import sympyx = sympy.Symbol('x')y = sympy.Symbol('y')print(sympy.solve([x * y -2, y - 9], [x, y]))>> [(2/9, 9)]


2、Z3

约束器。
Github:https://github.com/Z3Prover/z3
文档:https://www.cs.tau.ac.il/~msagiv/courses/asv/z3py/guide-examples.htm
发布版:https://github.com/Z3Prover/z3/releases

安装: 1.下载发布版程序
2.bin/z3放到Python/Lib下,bin中的其他库文件放到Python\libs\z3bin,include目录下的我也放到Python\include
3.将z3bin添加到Path环境变量中

问题:PEAR - ARA = PEA,求字母分别代表的十进制数。
import z3p = z3.Int('p')e = z3.Int('e')a = z3.Int('a')r = z3.Int('r')s = z3.Solver()s.add(p < 10, e < 10, a < 10, r < 10)s.add(p >= 0, e >= 0, a >= 0, r >= 0, p + e + a + r != 0)s.add(p*1000 + e*100 + a*10 + r - (a*100 + r*10 + a) == p*100 + e*10 + a)# print(z3.simplify(p*1000 + e*100 + a*10 + r - (a*100 + r*10 + a)))if s.check() == z3.sat:    print(s.model())else:    print("unsat")

>>> [p = 1, e = 0, a = 9, r = 8]
这么高大上的模块用来暴搜是不是浪费了。
原创粉丝点击