【发布时间】:2015-09-07 00:32:08
【问题描述】:
看了这个topic是因为忘记了几个月前在网上找到的一个方法,不知道为什么今天找不到,很简单,效果很好但是...
所以我尝试了一种方法,但我认为它效果不佳,或者我 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)
如果有人能启发我,因为我真的不记得方法了。
提前谢谢你
【问题讨论】: