汉诺威塔就是汉诺塔,又称“河内塔“。是源于印度一个古老传说的益智游戏。并且小圆盘上不能放大圆盘,三根柱子之间一次只能移动一个圆盘。游戏的难度随着圆盘的数量增加而增大,这里就来说说四个圆盘是如何完成的。
汉诺塔
游戏开始可以看到第一根柱子上有四个圆盘,我们要做的就是把它们搬到第三根柱子上。
首先将1号圆盘放在第二根柱子上,2号圆盘放在第三根柱子上。
将1号圆盘在2号圆盘上面,然后把3号圆盘放在第二根柱子上。
然后将1号圆盘放在4号圆盘上面,2号圆盘放在3号圆盘上面。这时第三根柱子已经空出来了,接下来要做的就是把4号圆盘搬到第三根柱子。
先将1号圆盘放在移动到第二根柱子的2、3号圆盘上面,接着就把4号圆盘搬到第三根柱子。
接下来就是要把剩下的三个圆盘搬到4号圆盘的上面就行。因为不能把大圆盘放在小圆盘上面,所以先将1号圆盘放回第一根柱子,然后把2号圆盘放在4号圆盘上面。
然后1号圆盘放回3号圆盘上面,2号则放回第一根柱子。
接着把1号圆盘放回2号圆盘上面。
这时3号就可以移动了,把它搬到第三根柱子的4号圆盘上。然后把1号圆盘搬到第二根柱子上,因为要先将2号圆盘放在第三根柱子上。
最后移动2号圆盘,再移动1号圆盘。
完成过关!
1分钟学会任意圆盘数的汉诺塔快速傻瓜无脑式过关方法
汉诺塔
有些公司拓展培训会玩这类游戏,或者小孩子也有玩的,之前我总结过发到了网上,现在重新总结并完整的整理下,供大家娱乐。学过程序开发的都知道汉诺塔当然是用递归算法来解决,但递归算法不适合人脑。我们玩的就是简单暴力,傻瓜式操作。
基本规则是,三根柱子之间一次只能移动一个圆盘,小圆盘上不能放大圆盘。
汉诺塔有些变种,比如柱子的个数可能3个,4个,5个,但显然柱子越少越难,所以一般还是用3个。圆盘一个或两个太简单了,一般是3个或以上,圆盘移动的规则有些变种是圆盘只能移动到相邻的柱子上,不能跨柱子移动,这个同样也有规律,大家可以自己想解法。
为了便于通用理解,我们采用如下规则:
三个柱子,每个柱子有任意个圆盘,大圆盘不能压在小圆盘上,一次移动一个圆盘,圆盘可以从最左边直接移动中间的柱子,也可以直接移动到最右边的柱子。至于最终三个如果全部移动到第三个柱子(最右边那个)上,我们认为成功(当然全部移动到中间的柱子上也可以认为成功,但我们为了通用性只认定全部移动到最右边的柱子上是成功)。
第一步,我们看一下圆盘的个数,按照奇左偶右的口诀进行(左的意思是第一次向左移动最小圆盘,最小圆盘不动,任意走一步,再向左移动最小圆盘,接着再最小圆盘不动,任意走一步,如此往复,如果向左移动到头了,就直接移动到最右边的柱子上,把柱子当成圆圈来处理。右的意思和向左的规律一样,只是移动方向相反)。其实做起来很简单,但可能有些人第一次看不明白,我们拿三个圆盘的汉诺塔详细一步一步图解下。
如上图,三个圆盘,奇数个,所以按口诀的话是向左移动(确定好方向后,后面操作的时候一直向左)。什么意思呢,就是最上面最小的那个圆盘,眼睛要盯紧它,第一步肯定只能动它,我们把它向左移动。问题来了,向左没有柱子,怎么移啊,我们要把这些柱子想象成循环的圆圈,所以向左移,其实是把它移动到最右边第三个柱子上,开始移动。
移动完最小圆盘,接下来随便走一步,但一定不能动这个最小圆盘(也就是说最小圆盘按口诀走一次之后不能再动),但是大家发现了,随便走一步且不能动最小圆盘,有且只有一步可走,我们走一步。
接下来再走最小圆盘,向左走一步(在最开始时候我们已经根据圆盘个数奇偶性确定了移动方向,所以后面一直走这个方向)
接下来最小圆盘不动,再任意走一步(其实有且只有一步可走)
接下来最小圆盘向左走一步
最小圆盘不动,任意走一步(显然有且只有一步)
最小圆盘向左走一步(左边到头了,循环移,意思就是移到最右边)
上图已经显示祝贺我们,我们成功了!
我们用了最小的步数成功移动,而且毫无压力。
下面我们可以练习三个柱子四个圆盘(四个圆盘为偶数,按口诀最小圆盘向右移动,移一下停一下),三个柱子五个圆盘(五个圆盘奇数个,按口诀最小圆盘向左移动,其实和三个圆盘规律一样,只不过步数多)的情况,如果你很快走出来了,那么你已经掌握了这个办法。
回到文章开头,如果我不想三个全移动到最右边,只想全移动到最中间的柱子呢,显然,把口诀改成奇右偶左就行了。至于开头的一些变种的汉诺塔的玩法,万变不离其宗,大家可以自己总结规律。
谢谢大家阅读到最后。