博物館大盜問題 Python

2021-10-08 20:43:53 字數 1603 閱讀 9506

博物館大盜問題

問題:

大盜潛入博物館,面前有5件寶物,分別有重量w和價值v,大盜的揹包僅能負重20 kg,請問如何選擇寶物,總價值最高?

item

weight

value12

3234

3484

5859

10思路:

本題中,從m(1, 1)計算至m(5, 20)

動態規劃**:

tr =

[none,,

,,,]

max_weight =

20# 初始化二維** m[(i, w)]

m =# 逐個填寫二位**

for i in

range(1

,len

(tr)):

for w in

range(1

, max_weight +1)

:if tr[i]

['w'

]> w:

m[(i, w)

]= m[

(i-1

, w)

]else

: m[

(i, w)]=

max(m[

(i-1

, w)

], m[

(i-1

, w - tr[i]

['w'])

]+ tr[i]

['v'])

print m[

(len

(tr)-1

, max_weight)

]

遞迴**:

tr =

# 集合

max_weight =

20m =

# 記憶**m

defthief

(tr, w)

:# 終止條件

if tr ==

set(

)or w ==0:

m[(tuple

(tr)

, w)]=

0return

0elif

(tuple

(tr)

, w)

in m:

return m[

(tuple

(tr)

, w)

]# 遞迴呼叫

else

: vmax =

0for t in tr:

if t[0]

<= w:

v = thief(tr -

, w - t[0]

)+ t[1]

vmax =

max(vmax, v)

m[(tuple

(tr)

, w)

]= vmax # 記錄

return vmax

print thief(tr, max_weight)

有趣的動態規劃例項 博物館大盜問題

大盜潛入博物館,面前有5件寶物,分別有重量和價值,大盜的揹包僅能負重20公 斤,請問如何選擇寶物,總價值最高?物品重量價值1 2323 4348 4585 910明確問題以後,我們需要建立動態規劃 m i,w 其中 i ii 是裝物品的數量 0 i 50 le i le 5 0 i 5 w ww 是...

國家博物館

法門寺 中國寶雞 法門寺 famen temple 又名 真身寶塔 位於炎帝故里 青銅器之鄉 寶雞市,2004年被聯合國教科文組織評為 世界第九大奇蹟 據傳始建於東漢明帝十一年 公元68年 約有1700多年歷史,素有 關中塔廟始祖 之稱,周魏以前稱作 阿育王寺 隋文帝時改稱 成實道場 唐高祖時改名 ...

隨州博物館

2014年10月2日到10月4日為慶祝大舅哥家喬遷之喜,多次在隨州厥水二橋 頂牛.曾國公館 宴請賓客。驚喜發現其旁竟是隨州博物館,之行卻是遺憾,由於時間原因,未能入內一觀。隨州博物館位於湖北省隨州市擂鼓墩大道中段西側的厥水河畔,與全國重點文物保護單位 擂鼓墩古墓群 毗鄰,距離市中心約1公里,占地10...