印度有一个关于“世界末日”的古老传说:在世界中心贝拿乐斯的圣庙里,安放着一个黄铜板,板上插着三根宝石针,每根针约50.8厘米,梵天(印度教主神)在创造世界的时候,在其中的一根针上,自下到上,放下了由大到小的64片金片,这就是所谓梵塔,不论白天黑夜,都有一个值班的僧侣按照梵天不渝的法则,把这些金片在三根针上移来移去,一次只能够移一片,并且要求不管在哪一根针上,小片永远在大片的上面,当所有64片都从梵天创造世界时所放的那根上移到另外一根针上时,世界就将在一声霹雳中消失,梵塔,庙宇和众生都同归于尽,这只是一个传说.
举一反三
- 一个黄铜板,插着三根针,在第一根针上,从下到上穿着由大到小的64片中心有孔的金片.每天把金片从第一根宝石针移到其余宝石针上.要求一次移动一片,小片永远在大片上面.当64片金片从第一根宝石针移到另一根宝石针上时,需要移动多少次呢?
- 中国大学MOOC: 在梵塔的故事中,如果宝石针上有5片金片,那么按照同样的规则将这些金片移到另一根针上所需要的次数为()。
- 在梵塔的故事中,如果宝石针上有5片金片,那么按照同样的规则将这些金片移到另一根针上所需要的次数为()。 A: 5; B: 31; C: 32; D: 63。
- 假设有一个16层汉诺塔,请问将所有的金片从一根针移动向另一根针需要多少步 ?
- 汉诺塔(Tower of Hanoi)是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。编写一个函数,用递归算法实现汉诺塔问题,输入A柱子上的盘子个数,打印输出搬动盘子顺序。