百雞問題

百雞問題

百雞問題是一個數學問題,出自中國古代約5—6世紀成書的《張邱建算經》,是原書卷下第38題,也是全書的最後一題,該問題導致三元不定方程組,其重要之處在於開創“一問多答”的先例。

問題

今有雞翁一,值錢伍;雞母一,值錢三;雞鶵三,值錢一。凡百錢買雞百隻,問雞翁、母、鶵各幾何?答曰:雞翁四,值錢二十;雞母十八,值錢五十四;雞鶵七十八,值錢二十六。又答:雞翁八,值錢四十;雞 母十一,值錢三十三,雞鶵八十一,值錢二十七。又答:雞翁十二,值錢六十;雞母四、值錢十二;雞鶵八十 四,值錢二十八。”

歷史淵源

原書沒有給出解法,只說如果少買7隻母雞,就可多買4隻公雞和3隻小雞。所以只要得出一組答案,就可以推出其餘兩組答案。中國古算書的著名校勘者甄鸞和李淳風注釋該書時都沒給出解法,只有約6世紀的算學家謝察微記述過一種不甚正確的解法。到了清代,研究百雞術的人漸多,1815年駱騰風使用大衍求一術解決了百雞問題。1874年丁取忠創用一個簡易的算術解法。在此前後時曰醇(約1870)推廣了百雞問作《百雞術衍》,從此百雞問題和百雞術才廣為人知。百雞問題還有多種表達形式,如百僧吃百饅,百錢買百禽等。宋代楊輝算書內有類似問題,中古時近東各國也有相仿問題流傳。例如印度算書和阿拉伯學者艾布·卡米勒的著作內都有百錢買百禽的問題,且與《張邱建算經》的題目幾乎全同。

解法

數學解法

從現代數學觀點來看,實際上是一個求不定方程整數解的問題。解法如下:

設公雞、母雞、小雞分別為x、y、z 只,由題意得:

①……x+y+z =100

②……5x+3y+(1/3)z =100

有兩個方程,三個未知量,稱為不定方程組,有多種解。

令②×3-①得:7x+4y=100;

所以y=(100-7x)/4=25-2x+x/4

令x/4=t, (t為整數)所以x=4t

把x=4t代入7x+4y=100得到:y=25-7t

易得z=75+3t

所以:x=4t

y=25-7t

z=75+3t

因為x,y,z為正整數

所以4t大於0

25-7t大於0

75+3t大於0

解得t大於0小於等於25/7 又因為t為整數

所以t=1時

x =4;y =18;z =78

當t=2時

x =8;y =11;z =81

當t=3時

x =12;y =4;z =84

C語言解法

輸出結果為:

公雞0隻,母雞25隻,小雞75隻

公雞4隻,母雞18隻,小雞78隻

公雞8隻,母雞11隻,小雞81隻

公雞12隻,母雞4隻,小雞84隻

java語言解法

C#語言解法

程式如下:

PHP語言解法

Java語言解法以及結果

相關詞條

相關搜尋

熱門詞條

聯絡我們