python中代码的运行时间有多长
假设循环的速度是线性的,我需要计算一台avg计算机运行这段代码大约需要多长时间(我的老师让我假设它是线性的,我知道这不是真的,但我们是初学者。) 我等了3个小时,什么也没得到,所以,正如人们建议我做的那样,我计算了一个较小的输入:python中代码的运行时间有多长,python,performance,python-3.x,time,Python,Performance,Python 3.x,Time,假设循环的速度是线性的,我需要计算一台avg计算机运行这段代码大约需要多长时间(我的老师让我假设它是线性的,我知道这不是真的,但我们是初学者。) 我等了3个小时,什么也没得到,所以,正如人们建议我做的那样,我计算了一个较小的输入:2**20。这花费了0.2447868121569052秒 现在,我试着用两种方法继续计算,我认为这两种方法必须得到相同的结果,但事实并非如此 如果我假设循环的速度是线性的,为了计算2**100,我只需要计算(0.2447868121569052)^5,因为(2**20
2**20
。这花费了0.2447868121569052秒
现在,我试着用两种方法继续计算,我认为这两种方法必须得到相同的结果,但事实并非如此
2**100
,我只需要计算(0.2447868121569052)^5
,因为(2**20)**5=2**100
我得到的结果是:0.000878901251447358秒(这真的不符合逻辑)
-0.2447868121569052秒2**20
-李>2**100
2**100 * 0.24478681215692052 / 2**20
并通过使用获得:29610104897497890198453.29788130608283648秒 x**y * x**z = x**(y + z)
让我们证明一下
x**y + x**z = (x * ...y times... * x) * (x * ...z times... * x) =
= (x * ...y+1 times... * x) * (x * ...z-1 times... * x) =
= ... = (x * ...y+z times... * x) = x**(y + z)
这就是为什么
2**100 = 2**(20 + 80) = 2**20 * 2**80
所以
如果我假设循环速度是线性的,为了计算2*100,我只需要计算(0.2447868121569052)^5,因为(2*20)*5=2**100
这不是一个有效的代数计算。2**20=0.2447868121569052
2^20等于.2447是真的吗?你确定吗?因为2**20!=0.2447868
。答案#2是正确的。0.2447…
是运行时,2**20
是迭代次数…你看到区别了吗?我宣布2**100
为boogol™ (二进制googol)。好吧,可能已经存在了,但我把“™" 在itSo上,运行时间是多少?从第一行开始大约2.9592909751765742e+23秒2**100==(2**20)*(2**20)*(2**20)*(2**20)*(2**20)*(2**20)< >代码>,运行时间是否比它短得多?它在我的计算机上看起来不到一秒钟。打印的答案是<代码> 1267 6502242244096707055366< /代码>。让我们考虑f(n)得到n次迭代的运行时间,f(5×n)=f(n)* 5。在这种情况下f(220)~0.25秒,所以f(2100)=f(220×280)=f。(2*20)*280=0.25*280=2**78秒好吧……我唯一能说的是我认为你的逻辑一定是错的。
2**100 = 2**(20 + 80) = 2**20 * 2**80
f(2**100) = f(2**20) * 2**80 = 0.24478681215692052 * 0.24478681215692052 =
= 2.9592909751765742e+23 seconds