作者gene50814 (genechen)
看板Python
标题[问题] 递回中的回圈问题
时间Wed Feb 27 15:09:51 2019
小弟正在努力编写递回来处理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://webptt.com/cn.aspx?n=bbs/Python/M.1551251394.A.DEA.html
1F:推 ckc1ark: V(2,2)的时候Y是range(3)才能跑i = 0, 1, 202/27 15:28
2F:→ gene50814: 对对 code中有X+1 我写错了02/27 15:30
※ 编辑: gene50814 (72.78.181.51), 02/27/2019 15:30:55
3F:推 ckc1ark: lst=[]要宣告在V里 02/27 21:28
4F:→ gene50814: 哎呀 万分感谢 一直纠结在V里的code没想到这个 02/28 02:32
5F:推 lemon651: 其实...不需要有list阿 直接return max(...)不就解决了 02/28 15:12
6F:推 lemon651: Sorry没看懂你的递回 不用理会我~ 02/28 15:16