所以我实际上是在试图理解为什么这些代码执行得更快的原因:
def powmod(b, e, m):
b2 = b
res = 1
while e:
if e & 1:
res = (res * b2) % m
b2 = (b2*b2) % m
e >>= 1
return res
............
............
x = powmod(x,16971,25777)
............
............
除此之外:
#x belongs to a list, type numpy.int64
x1 =(pow (x,16971)%25777)
我不能使用pow()
来使用第3个参数,该函数的所有输入都必须是整数,但是这里x是numpy.int64类型的数据。
通过使用powmod方法,执行时间减少了大约10倍。我真的不明白为什么它更快?任何帮助将不胜感激,让我理解这一点。