举重弓

时间:2019-11-26 00:53:44

标签: python algorithm recursion optimization greedy

我正在尝试选择最大的权重,以填充一个可以支持权重C的框。为此,我对权重V的列表进行了排序,我将其从n读取为0(索引),然后对于每个n,我想计算出不超过C的每个最大值。我用发现的每个等于C或n的最接近权重的最大值来填充表T。

谢谢您的帮助,我已经花了很多时间来编写代码,但我仍然迷失在最后,我想通过递归验证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))```

0 个答案:

没有答案