[问题] 河内塔照顺序问题

楼主: isaac410 (爱萨克)   2021-03-28 23:35:53
各位版友好
小弟最近刚学到递回,学到最经典的河内塔问题
照正常思维去想应该没啥问题
http://i.imgur.com/alglNEd.jpg
这是小弟的想法
http://i.imgur.com/PiVbR0F.jpg
用n=3个去想
但是如果要写成只能照顺序移动(A~B~C~A)
这是小弟一样用n=3去想
http://i.imgur.com/cLS8JUl.jpg
想是想得出来
但是遇到递回里面就卡住不知道如何下手
能请各位大大指点迷津吗
谢谢
作者: LPH66 (-6.2598534e+18f)   2021-03-29 01:13:00
你知道为什么原版能用递回吗?
作者: ck574b027 (荒围!定厝!贼!妹!)   2021-03-29 13:48:00
我在想作为新手入门,为何教学自己就在用ABC做不良示范改成 char start, char store, char goal 不好吗
作者: kaneson (Lance)   2021-03-29 14:06:00
新手不太键议用河内塔学递回
作者: MartinJ40 (Martin J-40)   2021-03-29 14:20:00
河内塔学递回超好吧 很明显n+1解含n解的子结构阿
作者: LPH66 (-6.2598534e+18f)   2021-03-29 18:13:00
用河内塔我也觉得没问题+1, 问题在教的人有没有把这题目中类似于数学归纳法的结构给指出来原 PO 看起来就完全没 get 到这件事所以他自己的“想法”里一丁点递回或子问题的影子都没有所以我上来第一句就问原 PO 知不知道为什么原题能用递回
作者: alan23273850   2021-03-30 10:14:00
学递回用阶乘或费式数列都很棒啊
作者: tsoahans (ㄎㄎ)   2021-03-30 11:00:00
你要把K个盘子(K>1)从A移到C 你必须先把上面K-1个盘子从A移到B 再把最底层的盘子从A移到C 最后再把K-1个盘子从B移到C你会注意到"把K-1个盘子从A移到B"这件事情和"把K个盘子从A移到C"做的事情是一样的差别只有在目的地和数量不同(算法一样但输入参数不同)
作者: vup4jp6 (精锐猫奴)   2021-04-08 10:00:00
从头到尾都只有两个盘子在移动 没有ABC柱子的区分只有目标位置 跟 暂放

Links booklink

Contact Us: admin [ a t ] ucptt.com