Реализация POW в Python намного быстрее моей - PullRequest
0 голосов
/ 03 апреля 2019

Я практикую алгоритм быстрого питания в Python3 и проверил его по встроенной функции питания Python.

Почему оказывается, что встроенная функция работает намного быстрее?

Мой код:

def levinPOW(n, k):
  res = 1
  while k:
    if k&1:
      res *= n
    n *= n
    k = k >> 1
  return res

import time
start = time.time()
a = levinPOW(2, 10000000)
end = time.time()
print(end-start)
start = time.time()
b = 2 ** 10000000
end = time.time()
print(end-start)
print(a==b)

Результат:

0.31336236000061035
4.291534423828125e-06
True

1 Ответ

1 голос
/ 03 апреля 2019

Встроенная функция реализована в C, что намного быстрее, чем в Python.Также, вероятно, несколько человек делали улучшения скорости.

...