百雞問題和Frobenius方程

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

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

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

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

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

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

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

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

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

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

$$r + h + c = 100, \quad 5r + 3r + \tfrac{1}{3}c = 100$$

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

$$7r + 4h = 100$$

雞母的表達式可以寫作:

$$h = 25 - \tfrac{7}{4}r = 25 - \tfrac{7}{4}(4t) = 25 - 7t$$

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

$$\begin{align}c &= 100 - r - h\\ &= 100 - 4t - (25 - 7t)\\ &= 75 + 3t\end{align}$$

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

$$(4t, 25-7t, 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和金牌急腳遞

Yap-Douglas letter of 1877

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

孔子時代開車的藝術