汉诺塔5层31步口诀,5层汉诺塔三十一步规则口诀

首页 > 经验 > 作者:YD1662022-11-06 13:16:24

汉诺塔5层31步口诀,5层汉诺塔三十一步规则口诀(1)

汉诺塔

有些公司拓展培训会玩这类游戏,或者小孩子也有玩的,之前我总结过发到了网上,现在重新总结并完整的整理下,供大家娱乐。学过程序开发的都知道汉诺塔当然是用递归算法来解决,但递归算法不适合人脑。我们玩的就是简单暴力,傻瓜式操作。

基本规则是,三根柱子之间一次只能移动一个圆盘,小圆盘上不能放大圆盘。

汉诺塔有些变种,比如柱子的个数可能3个,4个,5个,但显然柱子越少越难,所以一般还是用3个。圆盘一个或两个太简单了,一般是3个或以上,圆盘移动的规则有些变种是圆盘只能移动到相邻的柱子上,不能跨柱子移动,这个同样也有规律,大家可以自己想解法。

为了便于通用理解,我们采用如下规则:

三个柱子,每个柱子有任意个圆盘,大圆盘不能压在小圆盘上,一次移动一个圆盘,圆盘可以从最左边直接移动中间的柱子,也可以直接移动到最右边的柱子。至于最终三个如果全部移动到第三个柱子(最右边那个)上,我们认为成功(当然全部移动到中间的柱子上也可以认为成功,但我们为了通用性只认定全部移动到最右边的柱子上是成功)。

第一步,我们看一下圆盘的个数,按照奇左偶右的口诀进行(左的意思是第一次向左移动最小圆盘,最小圆盘不动,任意走一步,再向左移动最小圆盘,接着再最小圆盘不动,任意走一步,如此往复,如果向左移动到头了,就直接移动到最右边的柱子上,把柱子当成圆圈来处理。右的意思和向左的规律一样,只是移动方向相反)。其实做起来很简单,但可能有些人第一次看不明白,我们拿三个圆盘的汉诺塔详细一步一步图解下。

汉诺塔5层31步口诀,5层汉诺塔三十一步规则口诀(2)

如上图,三个圆盘,奇数个,所以按口诀的话是向左移动(确定好方向后,后面操作的时候一直向左)。什么意思呢,就是最上面最小的那个圆盘,眼睛要盯紧它,第一步肯定只能动它,我们把它向左移动。问题来了,向左没有柱子,怎么移啊,我们要把这些柱子想象成循环的圆圈,所以向左移,其实是把它移动到最右边第三个柱子上,开始移动。

汉诺塔5层31步口诀,5层汉诺塔三十一步规则口诀(3)

移动完最小圆盘,接下来随便走一步,但一定不能动这个最小圆盘(也就是说最小圆盘按口诀走一次之后不能再动),但是大家发现了,随便走一步且不能动最小圆盘,有且只有一步可走,我们走一步。

汉诺塔5层31步口诀,5层汉诺塔三十一步规则口诀(4)

首页 123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.