python中代码的运行时间有多长

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

假设循环的速度是线性的,我需要计算一台avg计算机运行这段代码大约需要多长时间(我的老师让我假设它是线性的,我知道这不是真的,但我们是初学者。)

我等了3个小时,什么也没得到,所以,正如人们建议我做的那样,我计算了一个较小的输入:
2**20
。这花费了0.2447868121569052秒

现在,我试着用两种方法继续计算,我认为这两种方法必须得到相同的结果,但事实并非如此

  • 如果我假设循环的速度是线性的,为了计算
    2**100
    ,我只需要计算
    (0.2447868121569052)^5
    ,因为
    (2**20)**5=2**100

    我得到的结果是:0.000878901251447358秒(这真的不符合逻辑)

  • 我试过另一种方法:

    • 2**20
      -0.2447868121569052秒
    • 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