参考https://blog.csdn.net/xp731574722/article/details/70766804
import numpy as np
def function(v,w,n,c):
c = c +1
m = np.zeros((n,c))
x = np.zeros(n)
for i in range(n):
for j in range(c):
if (j >= w[i]):
m[i][j] = max(m[i - 1][j], m[i - 1][j - w[i]] + v[i])
else:
m[i][j] = m[i - 1][j]
print(m)
c = c -1
for i in range(n-1, 0, -1):
if (m[i][c] == m[i - 1][c]):
x[i] = 0
else:
x[i] = 1
c -= w[i]
x[0] =1 if (m[1][c] > 0) else 0
print(x)
return m
# for test function
v = [8,10,6,3,7,2]
w = [4,6,2,2,5,1]
n = 6
c= 12
function(v,w,n,c)