汉诺塔问题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个 那就应该想怎么挪