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

为什么python math.factorial(x)非常快?,python,Python,我有一个问题,为什么python数值计算非常快? 例如,下面的代码运行时间短于1秒 import math print math.factorial(10000) 为什么 在C中实现: 它提供了对C标准定义的数学函数的访问 通过在C中使用一个高效的算法,您可以得到快速的结果 如果您想知道为什么这个特定的操作如此之快,请参阅和。此函数的速度在很大程度上取决于Python版本。在Python3中速度快得多,而您似乎正在使用Python2.x。为什么不快呢?有关Python2.x和3.x中不同的阶

我有一个问题,为什么python数值计算非常快? 例如,下面的代码运行时间短于1秒

import  math
print math.factorial(10000)
为什么

在C中实现:

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

通过在C中使用一个高效的算法,您可以得到快速的结果


如果您想知道为什么这个特定的操作如此之快,请参阅和。

此函数的速度在很大程度上取决于Python版本。在Python3中速度快得多,而您似乎正在使用Python2.x。为什么不快呢?有关Python2.x和3.x中不同的阶乘算法的讨论,请参阅。在math_factorial的c代码中,我发现它使用了一个名为PyNumber_Multiply的函数,但我没有找到它的实现。factorial的速度取决于算法的复杂性。C中的直接实现将比Python3中使用的算法慢得多。x@SvenMarnach:我怎么能猜到OP是在比较python 2和python 3的速度-p算法的结果是一个超过30000位的数字,对于这个庞大的数字计算,你应该使用数组或字符串,但我很困惑,为什么它返回的结果少于一秒“它只是在引擎盖下重复使用标准C函数。”——当然不是阶乘,返回一个任意精度的整数。@SvenMarnach:是的,我已经在忙着更新帖子了,但是随着hg.python.org的消失,我花了一秒钟的时间才将源URL翻译成bitbucket。我已经纠正了其他答案中的断开链接。