我正在计算我的计算机上计算两个n位整数的乘积所用的时间。你知道吗
我使用此代码来执行此操作:
import timeit
for i in range(50):
avg=0
for j in range(30):
avg+=timeit.timeit('a*b','a='+str(10**i)+';b='+str(10**i))
print(avg/30)
它将图形的结果返回到:
其中X轴是n,Y轴是以秒为单位的时间。如你所见,当它是10的倍数时,所花费的时间在n左右增加,并且不是不断增加的。你知道吗
我不明白为什么时间会这样变化。你知道吗
Tags:
Python int的大小是stored由30位块(有时是15位块,但现在这种情况更少见)组成的序列。使数字的小数位数变长大约需要30位,而两个数字相乘所需的时间主要取决于每个数字需要多少30位的数据块,因此时间以大约9位小数位数的增量增加。你知道吗
相关问题 更多 >
编程相关推荐