我尝试了很多数字,但是它的运行时间像O(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
。