揹包問題是乙個典型的動態規劃問題,這個不對其作解釋了,直接給出**。
求重量與價值分別為:[
10,
15], [
15,
25], [
20,
35], [
25,
45], [
30,
55], [
35,
70],揹包容量為 80 時可以容納的最大價值。
#動態規劃求揹包問題
things = [[0, 0], [10, 15], [15, 25], [20, 35], [25, 45], [30, 55], [35, 70]]
# things 代表物品的重量與價值
nums_0 = [0 for i in range(81)]
nums =
#假設揹包大小為 80,nums[n][m] 代表 只考慮前 n 個物品時 m 容量揹包的最大價值
def func(m, n):
if m < things[n][0]:
return nums[n - 1][m]
else:
return max(nums[n - 1][m], nums[n - 1][m - things[n][0]] + things[n][1])
#動態計算 前 n 個物品時 m 容量揹包的最大價值
for i in range(1,7):
numstemp =
for j in range(81):
#得到推導矩陣
for j in range(81):
if j % 5 == 0:
print(j, end=' ')
print(end='\n\n')
for num in nums[1:]:
for i in range(len(nums[0])):
if i % 5 == 0:
print(num[i], end=' ')
print()
#輸出推導矩陣
print("80 容量的揹包可以最大裝", nums[6][80], "價值的東西")
0 1揹包問題python 0 1揹包問題1
鼓搗好久 終於了然了一些 0 1揹包問題描述 有乙個竊賊在偷竊一家商店時發現有n件物品,第i件物品價值為vi元,重量為wi,假設vi和wi都為整數。他希望帶走的東西越值錢越好,但他的揹包中之多只能裝下w磅的東西,w為一整數。他應該帶走哪幾樣東西?注 0 1揹包問題中 每件物品或被帶走,或被留下,需要...
0 1揹包問題 python
測試資料 n 6 物品的數量,c 10 書包能承受的重量,w 2,2,3,1,5,2 每個物品的重量,v 2,3,1,5,4,3 每個物品的價值 def bag1 n,c,w,v value 0for j in range c 1 for i in range n 1 i 物品 1 i for i ...
揹包問題 01揹包問題
n個物品,總體積是v,每個物品的體積的vi,每個物品的最大價值是wi,在不超過v的體積下求最大價值 eg揹包容積為 5 物品數量為 4 物品的體積分別為 物品的價值分別為 思路定義乙個二位陣列int f new int n 1 v 1 f i j 就表示在1 i個物品中選取體積小於v的情況的最大價值...