赞
踩
今天看到了用python去破解汉诺塔的视频,感觉非常的有意思。作为一名初学者,在看完这个视频以后,觉得非常有意思。于是希望用自己的理解去讲解一下这个过程,作为对学过的知识的一个巩固,也作为自己学习python道路上的一个记录。
首先我们要先清楚汉诺塔的玩法。关于汉诺塔的什么什么历史之类的故事我就不再赘述了,这里主要讲解一下它的玩法。首先就是有三根柱子,这里我给他们编号为ABC。现在A柱子上有若干个圆盘,其余两根柱子上是空的,而我们的目的就是要将A柱子上的圆盘全部移到C柱子上。注意!初始状态时A柱子上的圆盘是按照从上往下从小到大的顺序摆放的,而我们移动时一次只能移动一个圆环,且不能将大的圆环移动到小的圆环上面。具体可以结合我画的图来理解。
首先就是最简单的两个圆盘的情况,这个相信所有人都能理解,就是先将A最上面的圆盘移动到B,然后把A剩下的圆盘移动到C,最后将B上的圆盘移动到C就完成了所有的移动步骤。
接下来我们来试着分析一下三个圆盘的情况。这时候我们移动圆盘的顺序如图所示:
这些步骤看似繁琐,其实非常容易理解。首先我们要将三个圆盘从A移动到C,意味着我们需要将A最上面的两个圆盘先移动到B,然后将最下面的圆盘移动到C,再将B上的两个圆盘移动到C上来。那么现在我们通过这个方法巧妙地将移动三个圆盘的问题化简为移动两个圆盘的问题。
同理,对于n个圆盘的情况,我们可以先将问题降级为n-1个圆盘的情况,然后不断降级直到降级为移动两个圆盘的情况,这个时候问题就从原来
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。