Python 用重物撑弓
我试图选择我能选择的最大权重,以填充一个可以支持C权重的框。为此,我对权重列表V进行了排序,我在从n到0的索引中读取它们,对于每一个n,我想计算出不超过C的最大值。我在表格t中填充了我找到的每一个权重的最大值,它们等于C,或者是最接近的n 谢谢你的帮助,我已经为代码花费了大量的时间,但最后还是迷路了,我想通过递归验证V[n]的和是否会太高,我认为我的代码结尾没有经过深思熟虑Python 用重物撑弓,python,algorithm,recursion,optimization,greedy,Python,Algorithm,Recursion,Optimization,Greedy,我试图选择我能选择的最大权重,以填充一个可以支持C权重的框。为此,我对权重列表V进行了排序,我在从n到0的索引中读取它们,对于每一个n,我想计算出不超过C的最大值。我在表格t中填充了我找到的每一个权重的最大值,它们等于C,或者是最接近的n 谢谢你的帮助,我已经为代码花费了大量的时间,但最后还是迷路了,我想通过递归验证V[n]的和是否会太高,我认为我的代码结尾没有经过深思熟虑 V=[1,2,3,4,5,6,7,8,9,10] C = 9 def Vmax(V, n, C, T): if
V=[1,2,3,4,5,6,7,8,9,10]
C = 9
def Vmax(V, n, C, T):
if n ==-1:
return(T)
else:
if C < V[n]:
Vmax(V, n-1, C, T)
else:
if V[n]== C:
T.append(V[n])
Vmax(V, n-1, C, T)
# Troubles starts here
elif V[n] < C:
for k in range(1,n):
if k - n == -2:
T.append(V[n])
if V[n] + Vmax(V, n-k, C, T) < C:
T.append(V[n] + Vmax(V, n-k, C, T))
else:
Vmax(V, n-1, C, T)
print(Vmax(V, len(V)-1, C, T))```
欢迎来到StackOverflow。看见在您发布MRE代码并准确说明问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您指定的问题。麻烦从这里开始[sic]不是问题规范。另外,请参考SO和其他网站上关于目标和问题的许多讨论。更好地理解代码的最简单方法之一是使用有意义的变量名。我看了你的代码,看到一堆n,k,T,C,V,完全不知道到底发生了什么。但是如果变量有一个描述它所代表的名称,我的理解就会大大提高。你可能认为你理解那些神秘的名字,但下周你就不会了。使用有意义的变量名。