智叟分牛

來源:互聯網
上載者:User

標籤:演算法

    很小的時候就看到了這麼一個故事。

    相傳古印度有一位老人,臨終前留下遺囑,把所養的19頭牛分給3個兒子。大兒子分得二分之一,老二分得四分之一,小兒子分得五分之一。按印度教規,牛被視為神靈,不能被宰殺,而父親的遺囑須無條件遵守。按老父親的遺囑,大兒子分得的牛數為:19/2=9.5,二兒子分得:19/4=4.75頭,小兒子分得19/5=3.8頭牛。老人死後,三位兒子一籌莫展。[1]

    還記得那時候是三年級,看書已知道答案,就是大家熟悉的借牛法,即:向其他的人借一頭牛,加在一起共有20頭,大兒子分得20/2=10頭牛,二兒子分得20/4=5頭牛,小兒子分得20/5=4頭牛,共分得10+5+4=19頭牛,將剩下的一頭牛還給別人。當時剛好來了一個非常年輕,非常帥氣的數學老師,一向心高氣傲的我想考考這位老師的數學水平,於是將這道題問他。這位老師一節課後將我叫到了辦公室,認真的給我解釋怎麼分牛,當時心中還是挺佩服他的。

    雖然早已知道答案,但心中一直有一事不明,10頭牛並不是19的二分之一,為何算是正確答案呢?直到昨天,我才明白其中的奧秘。

    解釋一。

    注意到,1/2+1/4+1/5=19/20,也就是說,三個兒子第一次分得的牛加起來其實並不是所有牛。假設所有牛為1,則還剩下1-19/20=1/20,按照老人的遺囑,剩下的1/20的牛也應該讓大兒子分得二分之一,老二分得四分之一,小兒子分得五分之一,此時還剩下1/20-1/20*(1/2+1/4+1/5)=1/(20*20),如此不斷的分下去,那麼,分得的牛數情況如下:

    大兒子:19*(1/2+1/2*1/20+1/2*1/(20*20)+...)=19/2*(1+1/20+1/(20*20)+...)

    二兒子:19*(1/4+1/4*1/20+1/4*1/(20*20)+...)=19/4*(1+1/20+1/(20*20)+...)

    小兒子:19*(1/5+1/5*1/20+1/5*1/(20*20)+...)=19/5*(1+1/20+1/(20*20)+...)

    1, 1/20, 1/(20*20), ... 是一個極限等比數列,根據等比數列公式:Sn=a1*(1-qn)/(1-q),可知

    1+1/20+1/(20*20)+...=1*(1-(1/20)n)/(1-1/20), n->無窮大=20/19

    因此,最終的分配方案為:

    大兒子:19/2*20/19=10

    二兒子:19/4*20/19=5

    小兒子:19/5*20/19=4

    解釋二。

    大兒子分得二分之一,老二分得四分之一,小兒子分得五分之一,可以看成他們的分配比例。

    大兒子:二兒子:小兒子=1/2:1/4:1/5=10:5:4,因此三個兒子最終獲得的牛數為:

    大兒子:19*10/(10+5+4)=10

    二兒子:19*5/(10+5+4)=5

    小兒子:19*4/(10+5+4)=4


[1] 周穎, 程式員的數學思維修鍊, 清華大學出版社, P150

轉載請註明:康瑞的部落 ? 智叟分牛

智叟分牛

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.