Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用重物撑弓_Python_Algorithm_Recursion_Optimization_Greedy - Fatal编程技术网

Python 用重物撑弓

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

我试图选择我能选择的最大权重,以填充一个可以支持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 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,完全不知道到底发生了什么。但是如果变量有一个描述它所代表的名称,我的理解就会大大提高。你可能认为你理解那些神秘的名字,但下周你就不会了。使用有意义的变量名。