宿題用に wiki のナップザック擬似コードを変更して、ナップザックで正確な重量 W を達成できるかどうかをチェックする必要があります。アイテムの数は無制限で、値は重要ではありません。j>-W[j] の下に while ループを追加して、同じアイテムがいくつ収まるかを確認することを考えています。それはうまくいきますか?
ありがとう
// Input:
// Values (stored in array v)
// Weights (stored in array w)
// Number of distinct items (n)
// Knapsack capacity (W)
for w from 0 to W do
m[0, w] := 0
end for
for i from 1 to n do
for j from 0 to W do
if j >= w[i] then
m[i, j] := max(m[i-1, j], m[i-1, j-w[i]] + v[i])
else
m[i, j] := m[i-1, j]
end if
end for
end for