码迷,mamicode.com
首页 > 其他好文 > 详细

开张纪念

时间:2015-04-28 13:33:59      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

import gmpy2
from gmpy2 import mpz
def stirling(z):
        return gmpy2.gamma(z+1)
import time
t=time.clock()
print(stirling(mpz(30000000)))
t=time.clock()-t
print(t)

  结果:

2.0996305395095615e+211284807
0.000302

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

 

开张纪念

标签:

原文地址:http://www.cnblogs.com/XmodYgetZ/p/4462686.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!