開張記念

有人說階乘計算很慢,確實,若是按照定義去計算,那麼屢次乘法是很慢的。python

可是事實上咱們有現成的工具可用,好比伽瑪函數,斯特林公式。函數

其中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)

  結果:blog

2.0996305395095615e+211284807
0.000302class

速度很快,可是更大的數就不行了,由於受制於gmp浮點數的上限import

相關文章
相關標籤/搜索