棋盘麦粒问题
问题介绍
在印度有一个古老的传说:舍罕王打算奖赏国际象棋的发明人--宰相:西萨·班·达依尔。国王问他想要什么,他对国王说:"陛下,请您在这张棋盘的第1个小格里,赏给我1粒麦子,在第2个小格里给2粒,第3小格给4粒,以后每一小格都比前一小格加一倍。请您把这样摆满棋盘上所有的64格的麦粒,都赏给您的仆人吧!"国王觉得这要求太容易满足了,就命令给他这些麦粒。当人们把一袋一袋的麦子搬来开始计数时,国王才发现:就是把全印度甚至全世界的麦粒全拿来,也满足不了那位宰相的要求。 那么,宰相要求得到的麦粒到底有多少呢?总数为:
第 第 第 第 …… 第
1 2 3 4 …… 64
格 格 格 格 …… 格
1 + 2 + 4+ 8 + ……… + 2的63次方 = 2的64次方-1 = 18446744073709551615(粒)
人们估计,全世界需要500年生产这么多麦子!
- 中文名称 棋盘麦粒问题
- 外文名称 The grain problem
- 性质 名词
- 地区 印度
- 宗教 佛教
相似问题(梵塔)
与这十分相似的,还有另一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓梵塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,梵塔、庙宇和众生都将同归于尽。
不管这个传说是否可信,如果考虑一下把64片金片,由一根针上移到另一根针上,并且始终保持上小下大的顺序,一共需要移动多少次,那么,不难发现,不管把哪一片移到另一根针上,移动的次数都要比移动上面一片增加一倍。这样,移动第1片只需1次,第2片则需2次,第3片需4次,第64片需2的63次方次。全部次数为:18446744073709551615次这和"麦粒问题"的计算结果是完全相同的! 假如每秒钟移动一次,共需要多长时间呢?一年大约有31556926秒,计算表明,移完这些金片需要5800多亿年!
问题本质
按照那位宰相所要求的方法,在64格棋盘上放置麦粒,表面上看起来所需麦粒数量很少,其实越放越多,最终达到一个天文数量.
每格棋盘应该放置麦粒详细数量:
第1格棋盘: 1=2的0次方
第2格棋盘: 2=2的1次方
第3格棋盘: 4=2的2次方
∶
第18格棋盘: 131072=2的17次方
第19格棋盘: 262144=2的18次方
第20格棋盘: 524288=2的19次方
∶
第43格棋盘: 4398046511104=2的42次方
第44格棋盘: 8796093022208=2的43次方
第45格棋盘: 17592186044416=2的44次方
∶
第63格棋盘: 4611686018427387904=2的62次方
第64格棋盘: 9223372036854775808=2的63次方
总的数量应该是把64格里的麦粒全加在一起,非常明显,超级巨大。
问题结果:
这个故事背后的指数爆炸也是当今经常困扰人们的问题, 人们更期望解决问题的代价是随着问题规模赠大而以一种近似多项式形式增长而非指数增长的规模