河内塔问题简介
无公害蔬菜栽培技术-
由来
法国数学家
爱德
华
·
卢卡斯
曾编写过一个印度的古老传
说:在世界中心贝拿勒斯(在印
度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度
教的主神
梵天
在创造世界的时候,
在其
中一根针上从下到上地穿好了由大到小的
64
片金片,这就是所
谓的汉诺塔。不论白天
黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动
一片,不管在哪根针上,
小片必须在大片上面。
僧侣们预言,<
/p>
当所有的金片都从梵天穿好的那根针上移到另外一根针
上时,世界
就将在一声霹雳中消灭,而
梵塔
、庙宇和众生也都将同归于尽。
[2]
不管这个传说的可信度有多大,如果考虑一下把
64
片金片,由
一根针上移到另一根针
上,并且始终保持上小下大的顺序。这需要多少次移动呢
?
这里需要递归的方法。假设有
n
片,
移动次数是
f(n).
显然
f(1)=1,f(2)=3,f(3)=7
,
且
f(k+1)=2*f(k)+1
。
此后不难证明
f(n)=2^n-1
。
n=64
时,
假如每秒
钟一次,共需多长时间呢?一个平年
365
天有
31536000
秒,闰年
366
< br>天有
31622400
秒,平均每年
31556952
秒,计算一下:
18446744
秒
这表明移完这些金片需要
5845.54
亿年以上,而
地球存在至今不过
45
亿年,太阳系的
预期寿命据说也就是数百亿年。真的过了
5845.54
亿年,
不说太阳系和银河系,至少地球
上的一切生命,连同梵塔、庙宇等,都早已经灰飞烟灭。
印度传说
和汉诺塔故事相似的,还有另外一个印度传说:舍罕王打算奖赏国际象棋的发明人
──<
/p>
宰相西萨
·
班
·
达依尔。国王问他想要什么,他对国王说:
“
< br>陛下,请您在这张棋盘的第
1
个
小格里赏给我一粒麦子,在第
2
个小格里给
2
粒,第
3
个小格给
4
粒,以后每一小格都比
前一小格加一倍。
请您把这样摆满棋盘上所有
64
格的麦粒,
p>
都赏给您的仆人吧!
”
国王觉得
这个要求太容易满足了,就命令给他这些麦粒。当人们把一袋一袋的麦子搬来开始计数时,
国王才发现:就是把全印度甚至全世界的麦粒全拿来,也满足不了那位宰相的要求。
那么,宰相要求得到的麦粒到底有多少呢?总数为
1+2+2^2 + … +2^63=2^64
-1
等于移完汉诺塔所需的步骤数。
我们已经知道这个数字有多么大了。<
/p>
人们估计,
全世界
两千年也难以生产这么
多麦子!
[3]
相关预言
编辑
有预言说,
这件事完成时宇宙会在一瞬间闪电式毁灭。
也有人相信
婆罗
门
至今还在一刻
不停地搬动着圆盘。
其他相关
编辑
宇宙寿命
如果移动一个圆盘需要
p>
1
秒钟的话,等到
64
个圆盘全部重新落在一起,宇宙被毁灭是
什么时候呢?
<
/p>
让我们来考虑一下
64
个圆盘重新摞好需
要移动多少次吧。
1
个的时候当然是
1
次,
2
个的时候是
3
次,
3
个的时候就用了
7
次
......
这实
在是太累了
因此让我们逻辑性的思考一下吧。
3
个的时候能够移动最大的
3
盘时如图所
示。
到此为止用了
7
次。
接下来如右图,在上
面再放上
3
个圆盘时还要用
7
次(把
3
个圆盘重新放在一起需要
的次数)。
因此,
4
p>
个的时候是
“3
个圆盘重新摞在一起的次数
”+1
次
+
“3
个圆盘重新摞在一起需要的次数
”
=2x“3
个圆盘重新摞在一起的次数
”+1
次
=15
次。
那么,
n
个的时候是
2x“
(
n-1
)个圆盘重新
摞在一起的次数
”+1
次。
由于
1
个的时候是
< br>1
次,结果
n
个的时候为(
p>
2
的
n
次方减
p>
1
)次。
1
个圆盘的时候
2
的
1
次方减
1
2
个圆盘的时候
2
的
2
次方减
1
3
个圆盘的时候
<
/p>
2
的
3
次方减<
/p>
1
4
个圆盘的时候
2
的
4
次方减
1
5
个圆盘的时候
2
的
5
次方减
1
........
n
个圆盘的时候
2
的
n
次方减
1
也就是说,
n=64
的时候是
(
2
的
64
次
方减
1
)次。
因此,如果移动一个圆盘需要
1
秒的话,
宇宙的寿命
=2
的
64
次方减
1
(秒)
2
的
64
次方减
1
到底有多大呢?动动计算器,答案是一
个二十位的数字约是
1.84467440*10^19 <
/p>
用一年
=60
秒
x60
分
x24
小时
< br>x365
天来算的话,大约有
5800
< br>亿年吧。
太阳及其行星形成于
50
亿年前,其寿命约为
100
亿年。
汉诺塔问题在数学界有很高的研究价值,而且至今还在被一些
数学家们所研究。
也是我们所喜欢玩的一种益智游戏,它可以
帮助开发智力,激发我们的思维。
经典题目
有三根相邻的柱子,
标号为
A,B,C
,
A
柱子上从下到上按金字塔状叠放着
n
个不同大小
的圆盘,要把所有盘子一个一个移动到柱子
B
上,并且每次移动同一根柱子上都不能出现
大盘子在小盘子上方,请问
至少需要多少次移动,设移动次数为
H(n
)。