2015-06-21 33 views
0

我读了这个topic,因为我忘记了我在几个月前在网上找到的一种方法,我不知道为什么我今天找不到它,它非常简单并且工作正常,但是...在Python中执行的时间3.3


所以,我想一个方法,但我认为它不工作好,也许我的电脑是5岁是比今天的计算机更好...

import time 

debut=time.clock() 

def t(n): 
    aaa=[] 
    b=n-1 
    c=0 
    if n==0 or n==1: 
     return 1 
    else: 
     while n != 1: 
      if n % 2==0: 
       n=n//2 
       aaa.append(n) 
      else: 
       n = n+b 
       aaa.append(n) 
    return [b,b+1]+aaa, len(aaa)+2 

fin=time.clock() 

print(t(100000),fin-debut) 

对于n = 10.000.000我可以计算在我的脑海中大约5次和计算机总是返回3.956927685067058e-06 ...有人可以解释我吗?


而且我发现的方法,用这种from time import perf_counter as pc

我不得不返回print(pc()-t)

如果有人可以告诉我,因为我真的不记得了方法。

预先感谢您

回答

0

您正在测量定义函数所花费的时间。 这将测量功能的执行:

import time 

def t(n): 
    aaa=[] 
    b=n-1 
    c=0 
    if n==0 or n==1: 
     return 1 
    else: 
     while n != 1: 
      if n % 2==0: 
       n=n//2 
       aaa.append(n) 
      else: 
       n = n+b 
       aaa.append(n) 
    return [b,b+1]+aaa, len(aaa)+2 

start = time.time() 
value = t(100000) 
end = time.time() 

duration = end - start 
print(value, duration) 
+0

不,它不需要。我发现的方法只是使用时间模块,需要说明.. –

+0

编辑答案。 – User

+0

非常感谢你,我会在欧拉项目中做一个其他账户,我在那里找到了这个方法,那里的玩家告诉他们的解决方案,我刚刚解决了5个第一个问题,所以答案不会很难找:) –