百雞問題和Frobenius方程

現在的小學生常常會遇到一種一次多元的方程,比如說下面這題:

自行車 b=6, 摩托車 m=1; 自行車 b=14, 摩托車 m=0

這種一次多元的方程,中國人叫百雞問題。這種雞百問題,爸爸讀小學的時候是沒有可能遇到的。

因為,爸爸讀小學的時代,是沒有學這種不定方程的。不僅是一次多元的方程沒有,我們連普通的一次一元的方程都沒有。因為,那時的小學生並沒有正規的代數學訓練。

百雞問題,是北魏時代的數學課本《張邱建算經》裡面的最後一題。

今有雞翁一,值錢伍;雞母一,值錢三;雞鶵三,值錢一。凡百錢买雞百只,問雞翁、母、鶵各幾何?

但是,書裡面只有給出三個答案,沒有演算法。

答曰:雞翁四,值錢二十;雞母十八,值錢五十四;雞鶵七十八,值錢二十六。又答:雞翁八,值錢四十;雞母十一,值錢 三十三,雞鶵八十一,值錢二十七。又答:雞翁十二,值錢六十;雞母四、值錢十二;雞鶵八十四,值錢二十八。

我們現在相信,當時張先生是靠反覆試驗才得出那三個答案的。爸爸第一次接觸百雞問題,是在麻坡縣立圖書館裡面的一本書。書名為:Chinese Mathematics: A Concise History。她是牛津大學出版社出版的科普讀物,是翻譯自中國數學家李儼和杜石然的《中國算學史》。

現在我們用正規的代數法來解百雞問題。我們用r表雞翁(rooster)、h來代表雞母(hen)、c來代表雞鶵(chick):

r+h+c=100,5r+3r+13c=100

把雞鶵從兩組方程消除掉後:

7r+4h=100

雞母的表達式可以寫作:

h=2574r=2574(4t)=257t

最後,我們寫雞鶵的表達式:

c=100rh=1004t(257t)=75+3t

下面是百雞問題所有的正整數解:

(4t,257t,75+3t)=(0,25,75),(4,18,78),(8,11,81),(12,4,84)

百雞問題在國外當然有人研究,印度人Mahavira有研究,希臘人Diophantus有研究,後來的歐洲人當然也有研究。若我們要求答案只能是整數解,這種類型的一次多元方程在歐洲被稱為Frobenius問題。用計算機程序來解Frobenius問題是很容易的,上面的百雞問題,若是用Mathematica程序,只需輸入:

rh = FrobeniusSolve[{7, 4}, 100]
c = Table[100 - rh[[j, 1]] - rh[[j, 2]], {j, 1, 4}]

當然如果你要用手算也可以,簡單的一次二元方程,我們只需輕輕的幾個步驟。但是如果是一次十元的Frobenius方程,用手可能要算到很酸。

現在你問我,小學生在沒有正規代數學訓練的情況底下,能要求他們解百雞問題嗎?

可以是可以的,但我想,只能用張邱建先生在1500年前用的反覆試驗法來解。你問我,一般小學生應不應該學解百雞問題。我會認為是沒有必要的,但是,現在小學生數學課本作者並不那麼認為。

Comments

Popular posts from this blog

Urusan Seri Paduka Baginda和金牌急腳遞

「日上三竿」到底是早上多少點?

《心經》裡面的「般若波羅蜜」一詞

The children of Yap Ah Loy sued their mum in court (1898 - 1904)

The Sang Kancil Story of Malacca