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

看板Python作者 (genechen)時間6年前 (2019/02/27 15:09), 6年前編輯推噓4(402)
留言6則, 3人參與, 6年前最新討論串1/1
小弟正在努力編寫遞迴來處理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) 雖然知道問題在這但還是想不出要怎麼修正 才疏學淺 想請諸位大大指教一下要怎麼樣修改 感激不盡 問題有點複雜 手機排版 不好意思 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 72.78.181.51 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1551251394.A.DEA.html

02/27 15:28, 6年前 , 1F
V(2,2)的時候Y是range(3)才能跑i = 0, 1, 2
02/27 15:28, 1F

02/27 15:30, 6年前 , 2F
對對 code中有X+1 我寫錯了
02/27 15:30, 2F
※ 編輯: gene50814 (72.78.181.51), 02/27/2019 15:30:55

02/27 21:28, 6年前 , 3F
lst=[]要宣告在V裡
02/27 21:28, 3F

02/28 02:32, 6年前 , 4F
哎呀 萬分感謝 一直糾結在V裡的code沒想到這個
02/28 02:32, 4F

02/28 15:12, 6年前 , 5F
其實...不需要有list阿 直接return max(...)不就解決了
02/28 15:12, 5F

02/28 15:16, 6年前 , 6F
Sorry沒看懂你的遞迴 不用理會我~
02/28 15:16, 6F
文章代碼(AID): #1STZV2tg (Python)
文章代碼(AID): #1STZV2tg (Python)