c 揹包問題(Knapsack)

2021-07-10 23:23:08 字數 1110 閱讀 3516

有4水果,重量,**如下:
0 李子 4kg ¥4500

1 蘋果 5kg ¥5700

2 橘子 2kg ¥2250

3 士多啤梨 1kg ¥1100

4 甜瓜 6kg ¥6700

weight=[4,5,2,1,6];

value=[4500,5700,2250,1100,6700];

有個8kg包包,希望可以裝最大價值的水果,該怎樣裝?

package[3]=,,,,,,,,};
加入0 李子 4kg ¥4500 :

用8個重量依次增加的包包組合,來裝0,有2種選擇,裝入與不裝的價值比較,選優;

void putinto();}}

package[3][0]=,,,,,,,,};

加入1 蘋果 5kg ¥5700:

用8個重量依次增加的包包組合,來裝1,有2種選擇,裝入與不裝的價值比較,選優;

package[3][1]=,,,,,,,,};
加入2 橘子 2kg ¥2250:

用8個重量依次增加的包包組合,來裝2,有2種選擇,裝入與不裝的價值比較,選優

package[3][2]=,,,,,,,,};
加入3 士多啤梨 1kg ¥1100:

用8個重量依次增加的包包組合,來裝3,有2種選擇,裝入與不裝的價值比較,選優

package[3][3]=,,,,,,,,};
加入4 甜瓜 6kg ¥6700:

用8個重量依次增加的包包組合,來裝4,有2種選擇,裝入與不裝的價值比較,選優

如果,這裡水果的重量非整數,那需要再增加小數字的包包個數,那將可能是更小的差值。

Knapsack揹包問題入門

已知 揹包容量 c,物品種類 n,每種物品有且僅有1個 每種物品擁有負載 w 和 p 兩個屬性。設 n 1 2 維陣列,w p n first 物品n的負載 w p n second 物品n的 問題 揹包可裝物品的最大價值。求解 設 n 1 c 1 維陣列並初始化為0,v n c 表示 容量為 c ...

動態規劃 揹包問題 Knapsack

2018 03 15 13 11 12 揹包問題 knapsack problem 是一種組合優化的np完全問題。問題可以描述為 給定一組物品,每種物品都有自己的重量和 在限定的總重量內,我們如何選擇,才能使得物品的總 最高。問題的名稱 於如何選擇最合適的物品放置於給定揹包中。相似問題經常出現在商業...

C 揹包問題

在0 1揹包中,物體或者被裝入揹包,或者不被裝入揹包,只有兩種選擇 迴圈變數i,j的意義 前i個物品能夠裝入載重量為j的揹包中 陣列value的意義 value i j 表示前i個物品能加載重量為j的揹包中的最大價值 若w i j,第i個物品不被裝入揹包,否則,第i個物品放入揹包後的最大價值 val...