问题描述
a=list(range(10000))
b=list(range(10000))
result=0
for i,j in zip(a,b):
result+=i*j
print(result)
print()
import numpy as np
numpy_result=np.dot((np.array(a)),(np.array(b)))
print(numpy_result)
Output
333283335000
-1724114088
解决方法
这是一个溢出问题。
333283335000 远大于 2^31,因此您需要在 long long
numpy_result=np.dot(np.array(a,dtype=np.longlong),np.array(b,dtype=np.longlong))
333283335000