蓝魔
今天玩了一下汉诺塔,从一片开始玩起,玩到六片,没看什么资料,所以就说说我自己的理解,可能网上还有更好的方法,在这里抛砖引玉了。设左中右三个柱子,塔片最先在左柱子,最后要全移到右柱子。每个柱子都有下一个和前一个柱子,左边柱子的前一个是右柱子(可以想象左边还有一个汉诺塔),同样,右柱子的后一个是左柱子。这样,开始移动了。若左,右柱子上的片数为偶数,则移向各自柱子的下一个柱子,若左右柱子的片数为奇数,则移向各自柱子的前一个柱子,中间的柱子正好相反,即若片数为奇数,则移向下一个柱子(即右柱子),若片数为偶数,则移向前一个柱子(即左柱子)。
望大家不吝赐教。
使用道具 举报
汉诺塔规则:
分左中右三个柱子,规定刚开始塔片(圆盘)全放在最左边的柱子上,且最下面的圆盘最大,从下往上圆盘依次减小,现要把圆盘全都移到最右边。最后,圆盘放置也是最大的在最下面,最小的在最上面。移动规则是:一次只能将一个圆盘移动到另一个柱子上,并且在任意时候以及任意一个柱子上时,小圆盘只能在大圆盘的上面。学编程时学递归算法时典型的例子就是汉诺塔问题。
发表回复 回帖后跳转到最后一页
Archiver|手机版|魔方吧·中文魔方俱乐部
GMT+8, 2024-5-10 09:49
Powered by Discuz! X2
© 2001-2011 Comsenz Inc.