为什么在python中print(456 ** 5582)这么快?

时间:2019-03-26 17:41:04

标签: python python-3.x

我尝试了很多数字,但是它的运行时间像O(1)一样。为什么这么快?有人可以解释**运算符的实际工作原理吗。

1 个答案:

答案 0 :(得分:6)

声称这是O(1)是不正确的。

>>> %timeit 456**558 
6.22 µs ± 9.22 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
>>> %timeit 456**5582  
237 µs ± 226 ns per loop (mean ± std. dev. of 7 runs, 1000 loops each)
>>> %timeit 456**55822
9.54 ms ± 13.2 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

有关CPython的实现,请参见here