Python的POW实现比我自己的快多了
Python's POW implementation much faster than my own
我正在练习 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
内置函数是用 C 实现的,比 Python 快得多。
它也可能有几个人对其进行了速度改进。
我正在练习 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
内置函数是用 C 实现的,比 Python 快得多。 它也可能有几个人对其进行了速度改进。