2015-06-21 55 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個第一個問題,所以答案不會很難找:) –