Python的POW实现比我自己的快得多

时间:2019-04-03 08:24:41

标签: python pow

我正在Python3中练习快速幂算法,并针对Python的内置幂函数进行了测试。

为什么事实证明内置功能要快得多?

我的代码:

var date = new Date()

logLocaleDate("en-u-nu-deva-hc-h24")
logLocaleDate("en-u-nu-latin-hc-h24")

function logLocaleDate(locale){
  var res = (new Intl.DateTimeFormat(locale, {hour: "2-digit", minute: "2-digit", second:"2-digit"}).format(date))

  console.log(res);
}

结果:

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)

1 个答案:

答案 0 :(得分:1)

该内建函数是用C实现的,比用Python实现它要快得多。 它还可能有几个人对其进行了速度改进。