關(guān)于這段代碼我知道原理,但是我無(wú)法正確的表達(dá)出代碼運(yùn)作的細(xì)節(jié)!不知道怎么往下走,為此畫(huà)了一個(gè)圖,比較簡(jiǎn)陋,將就看一下吧。。。。。。。。請(qǐng)前輩提示我:1.withVal 和 withoutVal兩個(gè)值為什么是圖上左邊框框里的數(shù)值?我自己按照自己的理解在右邊的樹(shù)上標(biāo)注了出來(lái),但是和答案不一樣,我不理解!2.正確的流線是怎么走的,我已標(biāo)注好左背包和右背包的流線序號(hào)!以下是python代碼:a?=?[6,3]
b?=?[7,2]
c?=?[8,4]
d?=?[9,5]
def?DTImplicit(toConsider,?avail):
????if?toConsider?==?[]?or?avail?==?0:
????????result?=?(0,?())
????elif?toConsider[0][1]?>?avail:
????????result?=?DTImplicit(toConsider[1:],?avail)
????else:
????????nextItem?=?toConsider[0]
????????withVal,?withToTake?=?DTImplicit(toConsider[1:],?avail?-?nextItem[1])
????????withVal?+=?nextItem[0]
????????withoutVal,?withoutToTake?=?DTImplicit(toConsider[1:],?avail)
????????if?withVal?>?withoutVal:
????????????result?=?(withVal,?withToTake?+?(nextItem,))
????????else:
????????????result?=?(withoutVal,?withoutToTake)
????return?result
????
stuff?=?[[6,3],[7,2],[8,4],[9,5]]
val,?taken?=?DTImplicit(stuff,?10)
print?val
print?taken以下是圖:
添加回答
舉報(bào)
0/150
提交
取消