我在我的机器上得到以下结果:
Python 3.2.2 (default, Sep 4 2011, 09:51:08) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import timeit
>>> timeit.timeit('factorial(10000)', 'from math import factorial', number=100)
1.9785256226699202
>>>
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import timeit
>>> timeit.timeit('factorial(10000)', 'from math import factorial', number=100)
9.403801111593792
>>>
我认为这可能与int/long转换有关,但是factorial(10000L)
在2.7中没有更快。在
Python 2使用naive factorial algorithm:
Python3使用divide-and-conquer factorial algorithm:
^{pr2}$有关讨论,请参阅Python Bugtracker issue。感谢帝斯曼指出这一点。在
相关问题 更多 >
编程相关推荐