为什么python将两个n位整数相乘所花费的时间只有在n在10秒内增加时才会增加?

2024-04-25 19:54:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在计算我的计算机上计算两个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)

它将图形的结果返回到:

enter image description here

其中X轴是n,Y轴是以秒为单位的时间。如你所见,当它是10的倍数时,所花费的时间在n左右增加,并且不是不断增加的。你知道吗

我不明白为什么时间会这样变化。你知道吗


Tags: 代码inimport图形for计算机时间单位
1条回答
网友
1楼 · 发布于 2024-04-25 19:54:39

Python int的大小是stored由30位块(有时是15位块,但现在这种情况更少见)组成的序列。使数字的小数位数变长大约需要30位,而两个数字相乘所需的时间主要取决于每个数字需要多少30位的数据块,因此时间以大约9位小数位数的增量增加。你知道吗

相关问题 更多 >