汉诺塔问题python解析

问题背景

汉诺塔其实是在1883年的时候有一个法国的数学家名字叫卢卡斯发明的,不过关于这个游戏有一个传说,就是在佛教里面有一个神叫梵天,在创造世界的时候有一个圣地不是叫做贝拿勒斯在这个地方,造一个庙宇,庙宇里面有一个黄铜做的台子上面有三根宝石柱,而在其中一根宝石柱的上面梵天放了六十四个金罗盘,金罗盘上边小下边大,有一个僧侣,在不停的移动的这些金罗盘,而且移动是有规则的,规则是在移动的时候吧,我们每一次只能移动一个,而且这一个就不能放地上,你必须从一个柱子,移动到另外一柱子,不可以两个金罗盘同时移动到同一个柱上,还需要保证每次移动后每根柱子的金罗盘的顺序都是小压大,这个梵天还说,当这个僧侣把六十四个金罗盘都从最左边的柱子挪到最右边柱上的时候,世界就会在一声霹雳中毁灭所有的梵塔庙宇和僧侣也会同归于尽。

问题分析

在这里插入图片描述

设想

1.当罗盘只有一个的时候只需要把罗盘直接从A柱移动到C组一步就可以完成
2. 当罗盘只有两个的时候需要把小罗盘直接从A柱移动到B组大罗盘移动到C柱然后再将小罗盘移动到C柱三步就可以完成
3.当罗盘只有三个我只需要通过某种方法将上面的两片移动到B柱然后再将大罗盘移动到C柱上再把B柱的两个移动到C柱上去就完成了
4.当罗盘有N个的时候也是通过某种方法将上面的N-1片移动到B柱然后再将大罗盘移动到C柱上再把B柱的N-1移动到C柱上去就完成了,如果想挪N个 那就应该想怎么挪N-1个 ,如果想挪N-1个 那就应该想怎么挪

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值