库记录

一、标准库


二、第三方

1、Sympy

解方程。

import sympy

x = 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 z3

p = 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]
这么高大上的模块用来暴搜是不是浪费了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值