Python错误类型错误:无序类型:int()>;列表()
您好,我正在编写和测试一个递归动态编程背包(0-1)(以下代码是主文件和函数)我不断收到错误(在代码之后发布)…我真的很困惑错误是什么,所以任何帮助都将不胜感激 主文件 函数调用(在类Knapsack_Test.py中Python错误类型错误:无序类型:int()>;列表(),python,dynamic,dynamic-programming,knapsack-problem,Python,Dynamic,Dynamic Programming,Knapsack Problem,您好,我正在编写和测试一个递归动态编程背包(0-1)(以下代码是主文件和函数)我不断收到错误(在代码之后发布)…我真的很困惑错误是什么,所以任何帮助都将不胜感激 主文件 函数调用(在类Knapsack_Test.py中 def递归动态knap(self,v,w,i,w): n=len(v)-1 如果i==n: 如果W
def递归动态knap(self,v,w,i,w):
n=len(v)-1
如果i==n:
如果W
错误
回溯(最近一次呼叫最后一次):
文件“\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\Knapsack\u Main.py”,第9行,在
背包.递归背包试验(尺寸,W)
递归背包测试中的文件“\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\Knapsack\u Test.py”,第19行
self.knapsack.recursive\u dynamic\u knap(v,w,j,w)
文件“\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py”,第22行,递归动态knap
返回最大值(自递归动态knap(v,w,i+1,w),自递归动态knap(v,w,i+1,w-w[i])+v[i])
文件“\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py”,第22行,递归动态knap
返回最大值(自递归动态knap(v,w,i+1,w),自递归动态knap(v,w,i+1,w-w[i])+v[i])
文件“\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py”,第22行,递归动态knap
返回最大值(自递归动态knap(v,w,i+1,w),自递归动态knap(v,w,i+1,w-w[i])+v[i])
文件“\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py”,第22行,递归动态knap
返回最大值(自递归动态knap(v,w,i+1,w),自递归动态knap(v,w,i+1,w-w[i])+v[i])
文件“\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py”,第22行,递归动态knap
返回最大值(自递归动态knap(v,w,i+1,w),自递归动态knap(v,w,i+1,w-w[i])+v[i])
文件“\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py”,第22行,递归动态knap
返回最大值(自递归动态knap(v,w,i+1,w),自递归动态knap(v,w,i+1,w-w[i])+v[i])
文件“\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py”,第22行,递归动态knap
返回最大值(自递归动态knap(v,w,i+1,w),自递归动态knap(v,w,i+1,w-w[i])+v[i])
TypeError:无序类型:int()>list()
我认为问题在于,在返回max(self.recursive\u dynamic\u knap(v,w,I+1,w-w[I])中,self.recursive\u dynamic\u knap(v,w,I+1,w-w[I])+v[I])
对递归\u dynamic\u knap
的调用之一是返回v
,这是一个列表,作为max()的参数没有意义,因为它是“无序”(不能合理地判断为大于或小于int
)你也可以发布函数背包。递归背包测试
?请忽略我的问题我解决了它!我很高兴你解决了你的问题。没有必要编辑你的帖子说“忽略这个”--只有1)接受反映您解决方案的张贴答案(将问题标记为已回答)或者2)如果没有人这样做,那么用你找到的解决方案自己回答问题,并接受它。@user1661211:如果你已经解决了,请将你的解决方案作为你问题的答案发布。我投票结束这个问题,因为问题所有者说“请忽略我的问题,我解决了它!”!“是的,这是正确的答案……哈哈,我已经猜出来了,但再次感谢你!
import Knapsack_Test
size = 10
W = 2**size
knapsack = Knapsack_Test.Knapsack_Test()
for i in range(1, 10):
knapsack.recursive_knapsack_test(size, W)
size = size + 100*i
W = 2**size
def recursive_dynamic_knap(self, v, w, i, W):
n = len(v) - 1
if i == n:
if W < w[n]:
return 0
else:
return v
elif W < w[i]:
return self.recursive_dynamic_knap(v, w, i+1, W)
return max(self.recursive_dynamic_knap(v, w, i+1,W), self.recursive_dynamic_knap(v, w, i+1, W-w[i]) + v[i])
Traceback (most recent call last):
File "\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\Knapsack_Main.py", line 9, in <module>
knapsack.recursive_knapsack_test(size, W)
File "\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\Knapsack_Test.py", line 19, in recursive_knapsack_test
self.knapsack.recursive_dynamic_knap(v, w, j, W)
File "\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py", line 22, in recursive_dynamic_knap
return max(self.recursive_dynamic_knap(v, w, i+1,W), self.recursive_dynamic_knap(v, w, i+1, W-w[i]) + v[i])
File "\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py", line 22, in recursive_dynamic_knap
return max(self.recursive_dynamic_knap(v, w, i+1,W), self.recursive_dynamic_knap(v, w, i+1, W-w[i]) + v[i])
File "\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py", line 22, in recursive_dynamic_knap
return max(self.recursive_dynamic_knap(v, w, i+1,W), self.recursive_dynamic_knap(v, w, i+1, W-w[i]) + v[i])
File "\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py", line 22, in recursive_dynamic_knap
return max(self.recursive_dynamic_knap(v, w, i+1,W), self.recursive_dynamic_knap(v, w, i+1, W-w[i]) + v[i])
File "\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py", line 22, in recursive_dynamic_knap
return max(self.recursive_dynamic_knap(v, w, i+1,W), self.recursive_dynamic_knap(v, w, i+1, W-w[i]) + v[i])
File "\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py", line 22, in recursive_dynamic_knap
return max(self.recursive_dynamic_knap(v, w, i+1,W), self.recursive_dynamic_knap(v, w, i+1, W-w[i]) + v[i])
File "\\minerfiles.mst.edu\dfs\users\asadmb\Desktop\Programming 3\KnapsackClass.py", line 22, in recursive_dynamic_knap
return max(self.recursive_dynamic_knap(v, w, i+1,W), self.recursive_dynamic_knap(v, w, i+1, W-w[i]) + v[i])
TypeError: unorderable types: int() > list()