排列组合用处不少,因此打算本身作个这个工具:python
from scipy.special import comb,perm from os import system N=int(input('NumberOfThings:')) k=int(input('NumberOfElementsTaken:')) print('从%d里面取出%d个元素:'%(N,k)) print('排列:') print(perm(N,k,exact=True))#exact T 返回长整,F返回浮点 print('组合:') print(comb(N,k,exact=True)) system('pause')
核心就是两句:函数
from scipy.special import comb,perm print(perm(N,k,exact=True))#exact T 返回长整,F返回浮点 print(comb(N,k,exact=True))
真方便,因而跑去用pyinstaller打包......工具
居然失败了,若干支持库找不到.........我擦code
赶忙写个hello world 打个包,看看是否是pyinstaller炸了.blog
然而一切正常......ip
嗯,是的,我遇到了pyinstaller不支持的状况了.ci
怎么办呢?本身写了一个,实现了浮点数运算,但是我想要的是python的长整型啊!!!!.算了,仍是去复制黏贴一下吧....因而打开perm 和 comb的实现部分,开始找代码.好坑,组合竟然有个函数引用的是pyd里面的.....,只好原封不动的搬过来了.element
因而为了适应pyinstaller的版本出现了:input
from _comb import _comb_int def pailie(N,k): if (k > N) or (N < 0) or (k < 0): return 0 val = 1 for i in range(N - k + 1, N + 1): val *= i return val def zuhe(N,k): return _comb_int(N, k) while True: ctl='' ctl=input('input 0 to exit,anything else to proceed:') if ctl=='0': break N=int(input('Number of things:')) k=int(input('Number of elements taken')) print('排列:') print(pailie(N,k)) print('组合:') print(zuhe(N,k))
把这个源文件和_comb.cp36-win_amd64.pyd一块儿从工程里考出来,找个文件夹塞进去,pyinstaller一下......嘿嘿嘿,成功了.整个绿色软件10.6兆,好吧,有点肥.it
这样,就有了一个顺手的小工具了,哈哈