首页 > 学院 > 开发设计 > 正文

开张纪念

2019-11-14 17:14:46
字体:
来源:转载
供稿:网友

有人说阶乘计算很慢,确实,如果按照定义去计算,那么多次乘法是很慢的。

但是事实上我们有现成的工具可用,比如伽玛函数,斯特林公式。

其中gmp库中就有现成的gamma函数,所以大数的阶乘并不慢。

import gmpy2from gmpy2 import mpzdef stirling(z):        return gmpy2.gamma(z+1)import timet=time.clock()PRint(stirling(mpz(30000000)))t=time.clock()-tprint(t)

  结果:

2.0996305395095615e+211284807
0.000302

速度很快,但是更大的数就不行了,因为受制于gmp浮点数的上限

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表