python计算棋盘放米的故事_在棋盘上64个格子里放大米粒的故事

有一个皇帝的女儿不幸落水,被一个农夫救上来,皇帝问农夫想要什么以报答他的救女之恩。农夫指着旁边的一个国际象棋棋盘,对皇帝说:您在第一个格子里放一粒大米,在第二个格子里放2粒,在第3个格子里放4粒,在第4个格子里放8粒,以此类推,每一格子里的大米粒数都是前一格的两倍。就这样把这64个格子都放好了,我就要这么多大米粒。皇帝听后,觉得农夫的要求很容易满足,就笑着满口答应下来。但是一个聪明的大臣告诉皇帝,把全德国生产的大米都拿来,也填不完这64格……。

这是一道中学数学题,就是“等比数列求和”的问题。

棋盘上64个格子里总共究竟要放多少粒大米?其实是很容易计算出来的:设64格里的大米粒数总和是S,则

S=1+2+4+8+……+263                        (1)

(等号右边第64项是2的63次方)

我们把(1)式等号两边都乘以2,等式仍然成立:

2S=2+4+8+……+263+264                      (2)

(等号右边第63和64项分别是2的63和64次方)

(2)式等号右边从第一项开始到第63项,与(1)式等号右边从第二项开始到第64项完全一样,所以,我们把(2)式等号两边分别减去(1)式等号两边,等式仍然成立,并且变成:

S=264-1                                         (3)

也就是说,棋盘上64格里的大米共有“2的64次方减去1”这么多粒, 即18,446,744,073,709,551,615粒。

有人用电子秤计量过,一公斤大米约有52000粒。

我们保守一点祘,假设一公斤大米有216 = 65536粒,“2的64次方减去1”这么多粒大米就有248公斤,2814亿吨。

漫说德国,就是把全世界的大米都拿来也不能按农夫要求填好这64个格子,所以,这只是一个玩笑而已。

你可能感兴趣的:(python计算棋盘放米的故事)