汉诺塔原理用python程序实现的简述

本文介绍了汉诺塔的玩法和基本规则,并通过Python程序详细解释了如何使用递归方法解决汉诺塔问题。通过逐步降级问题,将n个圆盘的移动简化为更小规模的问题,最终实现所有圆盘从A柱移动到C柱的目标。
摘要由CSDN通过智能技术生成

         今天看到了用python去破解汉诺塔的视频,感觉非常的有意思。作为一名初学者,在看完这个视频以后,觉得非常有意思。于是希望用自己的理解去讲解一下这个过程,作为对学过的知识的一个巩固,也作为自己学习python道路上的一个记录。

        首先我们要先清楚汉诺塔的玩法。关于汉诺塔的什么什么历史之类的故事我就不再赘述了,这里主要讲解一下它的玩法。首先就是有三根柱子,这里我给他们编号为ABC。现在A柱子上有若干个圆盘,其余两根柱子上是空的,而我们的目的就是要将A柱子上的圆盘全部移到C柱子上。注意!初始状态时A柱子上的圆盘是按照从上往下从小到大的顺序摆放的,而我们移动时一次只能移动一个圆环,且不能将大的圆环移动到小的圆环上面。具体可以结合我画的图来理解。

        首先就是最简单的两个圆盘的情况,这个相信所有人都能理解,就是先将A最上面的圆盘移动到B,然后把A剩下的圆盘移动到C,最后将B上的圆盘移动到C就完成了所有的移动步骤。       

        接下来我们来试着分析一下三个圆盘的情况。这时候我们移动圆盘的顺序如图所示:

 这些步骤看似繁琐,其实非常容易理解。首先我们要将三个圆盘从A移动到C,意味着我们需要将A最上面的两个圆盘先移动到B,然后将最下面的圆盘移动到C,再将B上的两个圆盘移动到C上来。那么现在我们通过这个方法巧妙地将移动三个圆盘的问题化简为移动两个圆盘的问题。

        同理,对于n个圆盘的情况,我们可以先将问题降级为n-1个圆盘的情况,然后不断降级直到降级为移动两个圆盘的情况,这个时候问题就从原来的繁琐复杂变得可操作了

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值