我有不同的节目。第一个叫做prob1.py,它计算斐波纳契数。第二个是prob2.py,它使用记忆来计算斐波纳契。在第三个名为prob3.py的程序中,我试图打印出prob1.py的(n,fib(n)的计时)和prob2.py的(n,MemoFib(n)的计时)范围在(0,40)之间。在
prob1.py是
import sys
def fib(n):
if n == 0:
return (1)
elif n == 1:
return (1)
else:
return fib(n-1)+fib(n-2)
def main():
result = int(sys.argv[1])
print(fib(result))
main()
prob2.py是
^{pr2}$我有下面的代码调用这两个程序,打印出我需要的东西,但我不能适应我的代码。你能修好它吗?如果以下代码不起作用,我也可以使用其他代码。我只需要使用timeit函数打印出(n,Fib(n))和(n,MemoFib(n))。在
mytime = timeit.Timer( 'fib(0,40)', 'from prob1 import fib' )
delta = mytime.timeit( 40 )
print "40 runs of fib( 1000000 ) took: " + str( delta ) + " seconds."
print ''
setupStr = 'from prob1 import fib'
setupStr += '; import anotherFile'
mytime = timeit.Timer( 'list_concat( anotherFile.a, anotherFile.b)', setupStr )
print 'calling list_concat from cell.py on a, b, from foo.py:'
delta = mytime.timeit( 5 )
print "1 run of MemoFib( a, b ) took: " + str( delta ) + " seconds."
当您使用},这将给您一个TypeError,告诉您这一点。而是在
Timer('fib(0,40)', 'from prob1 import fib')
时,您正在设置计时器,用两个参数调用{prob3.py
中的for循环中运行计时器编辑-我现在已经测试过了,知道它可以执行。在
相关问题 更多 >
编程相关推荐