[英]Python implementing rod cutting algorithm
我正在练习动态编程,也是python的新手。 当我在shell中尝试这个。
def cut_rod(p, n):
if n==0:
return 0
q = float('-inf')
for i in range(n):
q = max(q, p[i] + cut_rod(p, n-1-i))
return q
p = [1,5,8,9,10,17,17,20,24,30]
print(timeit.repeat("cut_rod(p, 4)", "from __main__ import cut_rod",
number =1000))
它警告我,p不是一个全局变量。 在timeit函数中p不是已经是全局变量吗?
问题是你没有导入p
:
print(timeit.repeat("cut_rod(p, 4)", "from __main__ import cut_rod, p",
number =1000))
timeit
在受控环境中执行代码,因此您必须显式传递语句所需的所有内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.