[問題] 遞迴中的迴圈問題

作者: gene50814 (genechen)   2019-02-27 15:09:51
小弟正在努力編寫遞迴來處理dynamic programming問題
Code如圖:
https://i.imgur.com/ufgmhNN.jpg
遞迴式如下:
V(X,J) = max(f(Y,J)+V(X-Y,J-1)) X>=Y>=0
小弟在跑這個code時發現答案一直不對
檢查發現是 迴圈並沒有隨遞迴而改變
例如 V(2,2) = max(f(2,2)+V(0,1),f(1,2)+V(1,1),f(0,2)+V(2,1))
第二層遞迴 例如V(1,1)的計算 Y仍然是range(2+1)而非range(1+1)
雖然知道問題在這但還是想不出要怎麼修正
才疏學淺 想請諸位大大指教一下要怎麼樣修改 感激不盡
問題有點複雜 手機排版 不好意思
作者: ckc1ark (偽物)   2019-02-27 15:28:00
V(2,2)的時候Y是range(3)才能跑i = 0, 1, 2
作者: gene50814 (genechen)   2019-02-27 15:30:00
對對 code中有X+1 我寫錯了
作者: ckc1ark (偽物)   2019-02-27 21:28:00
lst=[]要宣告在V裡
作者: gene50814 (genechen)   2019-02-28 02:32:00
哎呀 萬分感謝 一直糾結在V裡的code沒想到這個
作者: lemon651 (小明)   2019-02-28 15:12:00
其實...不需要有list阿 直接return max(...)不就解決了Sorry沒看懂你的遞迴 不用理會我~

Links booklink

Contact Us: admin [ a t ] ucptt.com