为什么python math.factorial(x)非常快?

Poo*_*oya 15 python

我有一个问题,为什么python数值计算速度非常快?例如,下面的代码运行时间不到一秒钟

import  math
print math.factorial(10000)
Run Code Online (Sandbox Code Playgroud)

为什么???

Mar*_*ers 20

math模块的功能是用C语言实现的:

它提供对C标准定义的数学函数的访问.

通过在C中使用有效的算法,您可以获得快速的结果.

如果你问为什么这个特定的操作如此之快,那么看看为什么math.factorial在Python 2.x中要比3.x慢得多?C代码本身.

  • 阶乘的速度取决于算法的复杂性。C 中的直接实现将比 Python 3.x 中使用的算法慢得多 (2认同)
  • “它只是简单地重用了引擎盖下的标准 C 函数。” – 当然不是对于阶乘,它返回一个任意精度的整数。 (2认同)