有人說階乘計算很慢,確實,若是按照定義去計算,那麼屢次乘法是很慢的。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