Почему x**4.0
быстрее, чем x**4
? Я использую CPython 3.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 как float, он просто перемещается вокруг 24.1 ~ 4.
Я думаю, что это имеет какое-то отношение к конвертации float и возможностям 2, возможно, но я действительно не знаю.
Я заметил, что в обоих случаях мощности 2 быстрее, я думаю, так как эти вычисления являются более родными/легкими для интерпретатора/компьютера. Но все же, с поплавками он почти не двигается. 2.0 => 24.1~4 & 128.0 => 24.1~4
, но 2 => 29 & 128 => 62
TigerhawkT3 указал, что это не происходит за пределами цикла. Я проверил, и ситуация возникает только (из того, что я видел), когда появляется base. Есть идеи об этом?