为什么 x**4.0
比 x**4
快? 我用的是 CPython3.5.2。
$ python -m timeit "for x in range(100):" " x**4.0"
10000 loops, best of 3: 24.2 usec per loop
$ python -m timeit "for x in range(100):" " x**4"
10000 loops, best of 3: 30.6 usec per loop
我尝试改变我提高的功率,看看它是如何运作的,例如,如果我把 x 提高到10或16的功率,它会从30跳到35,但是如果我把 10.0作为浮点数提高,它只是在24.1 ~ 4附近移动。
我猜这和浮点数转换和2的幂有关,但我真的不知道。
我注意到,在这两种情况下,2的幂都更快,我想是因为这些计算对于解释器/计算机来说更原生/更容易。但是,对于花车来说,它几乎不能移动。2.0 => 24.1~4 & 128.0 => 24.1~4
但是 2 => 29 & 128 => 62