第一章
誰的算法對
伊格納托夫是前蘇聯著名的科普作家,他一生寫下了許多題材新穎、內容豐富、形式活潑的作品,伐木人的爭論是其作品中的一道題。
尼基塔和巴維爾是兩個伐木人。有一天,倆人幹完活正準備吃飯,迎麵走來一個獵人:“你們好哪,兄弟們!我在森林裏迷了路,離村莊又遠,餓得心慌,請分給我一些吃的吧!”
“行啊,行啊,你坐下吧!尼基塔有4張餅,我有7張餅,咱們在一起湊合著吃吧”巴維爾熱情地說。尼基塔也隨聲附和著。於是三人平均分吃了11張餅。吃過飯,獵人摸出11個戈比,說道:“請別見怪,我身上隻有這些錢了,你倆商量著分吧!”
獵人走後,兩個伐木人爭論起來。尼基塔說:“我看這錢應該平分!”巴維爾分駁說:“11張餅的錢是11個戈比。正好是1張餅1個戈比,我應得4個,我應得7個!”
他們倆的算法,誰的對呢?顯然尼基塔的算法是錯的,兩人帶的餅的數目不同,當然分得的錢也應不同。再看巴維爾的算法:11張餅,11個戈比,每張餅1個戈比,看起來非常合理,如果問題是“獵人用11個戈比買了11張餅”,那麼巴維爾的算法的確是正確的。可問題是“3個人平均分吃了11張餅,並且尼基塔和巴維爾帶的餅又不一樣多”,實際上,11張餅平均分給3個人,就是說,每人吃了113張餅。尼基塔有4張餅,自己吃了113張餅,他給獵人吃了4-113=13張。而巴維爾也吃了113張,他分別獵人7-113=103張。
獵人吃了113張餅,付給11個戈比,也就是說,每次13張餅獵人付給一個戈比。他吃了尼基塔13張餅,故尼基塔應得1戈比,他吃了巴維爾103張餅,巴維爾應得10戈比,兩個人的算法都錯了。
百雞問題
百雞問題是我國古代一個極為著名的數學問題,也是古代世界著名數學問題之一。
百雞問題出自中國古代算書《張丘建算經》,題意是這樣的:公雞5元1隻,母雞3元1隻,小雞3隻1元,100元可買100隻雞。問可買公雞、母雞和小雞各多少隻?
答案有三種
①公雞4隻,母雞18隻,小雞78隻;
②公雞8隻,母雞11隻,小雞81隻;
③公雞12隻,母雞4隻,小雞84隻。
百雞問題是一個求不定方程整數解的問題,解法如下:
設公雞x織,母雞y隻,小雞z隻。根據題意可列出方程組:
x+y+z=100
5x=3y+13z=100
消去z,可得7x+4y=100,因此y=100-7x4=25-7x4。由於y表示母雞的隻數,它一定是正整數,因此Χ必須得4的倍數。我們把它寫成:x=4K(K∈N)。於是y=25-7K。代入原方程組,可得z=75+3K。把上麵三個式子寫在一起有:
x=4K
y=25-7K
z=75+3k
在一般情況下,當K取不同的數值時,可得到x、y、z的許許多多組不同的數值。但是對於上麵這個具體問題,由於Y∈N,故K隻能取1、2、3三個數值,由此得到本題的三種答案。
百羊問題
百羊問題是出自中國古代算法《算法統宗》中的一道題。
這個問題說的是:“牧羊人趕著一群羊去尋找長得茂盛的地方放牧?