请问用python实现1到200000的累加,最快的方法是什么(或者尽可能快的),在300毫秒以内
(不能用高斯等差数列求和那套直接算的)
讲错了,300微秒
本来也很快啊,不到10毫秒
import time
t1 =time.time()
print(sum(range(1,200001)))
t2= time.time()
print(t2-t1)
结果:
20000100000
0.007995128631591797
1到200000正好是偶数个,共100000对,每对的和是200001,直接相乘就完事了
sum = 100000 * 200001
print(sum)
多次执行,可知:
20万次的累加 for循环 和 while循环 差不多快;
但200万次的累加 for循环要比while循环要快上0.5倍左右。
import time
t =time.time()
sum1 = 0
for i in range(200001):
sum1+=i
print(time.time()-t)
print(sum1) #这样放在计时后,否则影响计时准确性
t =time.time()
sum2 = 0
i = 1
while i<=200000:
sum2+=i
i+=1
print(time.time()-t)
print(sum2)
意义在哪?比谁的处理器牛逼?