python編程 棋盤放米故事?
棋盤放米故事?一個皇帝的女兒掉進(jìn)水里,被一個農(nóng)民救了出來。皇帝問農(nóng)夫他想要什么作為救女兒的回報。農(nóng)夫指著附近的棋盤對皇帝說:你把一粒米放在第一格里,把兩粒放在第二格里,把4粒放在第三格里,把8粒放在第
棋盤放米故事?
一個皇帝的女兒掉進(jìn)水里,被一個農(nóng)民救了出來。皇帝問農(nóng)夫他想要什么作為救女兒的回報。農(nóng)夫指著附近的棋盤對皇帝說:你把一粒米放在第一格里,把兩粒放在第二格里,把4粒放在第三格里,把8粒放在第四格里,以此類推。每格大米的粒數(shù)是前一格的兩倍。所以把64個方格都放好,我要這么多大的米粒?;实勐犃诉@話,覺得農(nóng)夫的要求很容易滿足,就笑著答應(yīng)了。但是一位明智的大臣告訴皇帝,如果他拿走了德國生產(chǎn)的所有大米,他就不能填滿64個方格。
這是一道中學(xué)數(shù)學(xué)題,是“等比數(shù)列和”問題。
棋盤上64個方格里應(yīng)該放多少粒米?事實上,這很容易計算:讓64個單元格中的顆粒數(shù)之和為s,那么
s=1 24 8 263(1)
(等號右邊的第64項是2的63次方)
我們將公式(1)的等號兩邊乘以2,方程仍然成立:
2S=2,4,8 263 264(2)
(等號右側(cè)的第63項和第64項分別是2的63次方和64次方)
](2)等式等號右側(cè)從第一項到第63項,與等式右側(cè)等號從第二項到第64項完全相同。因此,我們從(2)的等式等號的兩邊減去(1)的等式等號的兩邊,等式仍然成立,變成:
s=264-1(3)
也就是說,棋盤上64個方格里有這么多的米,即18446744073709551615粒。
有人用電子秤測量過。一公斤大米大約有5.2萬粒。
讓我們保守一點。假設(shè)一公斤大米有216粒=65536粒。如果我們用2的64次方減去1,就會有248公斤大米,2814億噸。
從這個故事中,我們可以看到復(fù)利的威力大于核子!