zoukankan      html  css  js  c++  java
  • 开张纪念

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

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

    其中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浮点数的上限

  • 相关阅读:
    Java并发编程:线程池的使用
    Java并发(理论知识)—— 线程安全性
    grid
    grid
    grid
    grid
    grid
    grid
    grid
    grid
  • 原文地址:https://www.cnblogs.com/XmodYgetZ/p/4462686.html
Copyright © 2011-2022 走看看