盈不足術
盈不足術是中國古代數學的一種算術方法。西漢成書的算學經典《九章算術》的第七章即名為「盈不足」。狹義的盈不足術指典型的盈虧問題的算法。廣義的盈不足術則指透過雙假設法將其他數學問題轉化為盈虧問題、再用機械化算法求解的方法。[1][2]
典型盈虧問題
《九章算數》原文 | 解釋 | 抽象算法 | 具體代入 |
---|---|---|---|
今有共買雞 | 一群人一起買雞 | ||
人出九,盈十一 | 每人出 9 塊,合起來多出 11 塊 | 記每人出的錢為 ,多出的錢為 | |
人出六,不足十六 | 每人出 6 塊,合起來差 16 塊 | 記每人出的錢為 ,差的錢為 | |
問︰人數、雞價各幾何? | 人數和雞的總價分別是多少? | ||
盈不足術曰 | 「盈不足術」的算法如下 | ||
置所出率,盈、不足各居其下 | 寫出每人出了多少錢,把多出和差的錢分別對應地寫在其下 | |
|
令維乘所出率,並以為實 | 交叉相乘,再相加,作為被除數(「實」) | ||
並盈、不足為法 | 把多出和差的錢加起來,作為除數(「法」) | ||
實如法而一 | 被除數除以除數 (所得即為不盈不虧時的條件) |
||
盈不足相與同其買物者,置所出率,以少減多,餘 | 寫出多出時和不足時每人兩次分別出了多少錢,用大數減去小數,得到「余」 | ||
以約法、實
實為物價,法為人數 |
「余」除「實」,得到物價 「余」除「法」得到人數 |
|
|
答曰:九人,雞價七十 | 共有 9 個人,總價為 70 塊 |
證明
劉徽在為《九章算術》作注時,利用齊同原理對盈不足術進行了證明:「盈朒維乘兩設者,欲為同齊之意。……齊其假令,同其盈朒……通計齊則不盈不朒之正數,故可並之為實,並盈、不足為法。」[3]:291
劉徽指出,交叉相乘的意義是使其「同齊」。每人所出為 時,盈 ,那麼總價變為 倍、每人所出變為 時,盈 。每人所出為 時,不足 ,那麼總價變為 倍、每人所出變為 時,不足 。這樣就「同其盈朒」,兩者相加則盈虧相抵,就「不盈不朒」,此時總價為 倍,每人所出為 ,相除即得到總價不變時每人所出的錢。
雙假設法
除盈虧類問題,《九章算術》還通過雙假設法,將其他算術問題轉化、套入盈虧類問題的算法模型,進行求解。如:
《九章算數》原文 | 解釋 | 抽象算法 | 具體代入 |
---|---|---|---|
今有醇酒一斗,直錢五十;行酒一斗,直錢一十 | 好酒每斗 50 塊,劣酒每斗 10 塊 | ||
今將錢三十,得酒二斗 | 現在花了 30 塊,買了 2 斗酒 | ||
問︰醇、行酒各得幾何? | 買了多少斗好酒、多少斗劣酒? | ||
術曰:假令醇酒五升,行酒一斗五升,有餘一十 | 假設買了 0.5 斗好酒、1.5 斗劣酒,則多花了 10 塊 | 設 ,計算得 | |
令之醇酒二升,行酒一斗八升,不足二 | 假設買了 0.2 斗好酒、1.8 斗劣酒,則少花了 2 塊 | 設 ,計算得 | |
(使用盈不足術,求出不盈不虧時的條件) | | ||
答曰:醇酒二升半,行酒一斗七升半 | 好酒 0.25 斗,劣酒 1.75 斗 |
該問題本屬於雞兔同籠,而通過兩次假設可以將其轉化為盈虧類問題,再用盈不足術求解。
非線性問題
盈不足術實際上是一種線性插值法;對於非線性的問題,所求出的只是其近似值。《九章算術》和劉徽都沒有意識到這一點。[3]:302如:
《九章算數》原文 | 解釋 | 抽象算法 | 具體代入 |
---|---|---|---|
今有蒲生一日,長三尺;莞生一日,長一尺 蒲生日自半;莞生日自倍 |
蒲草第一天長 3 尺,之後每天的生長速度為前一天的一半; 莞草第一天長 1 尺,之後每天的生長速度為前一天的兩倍 |
||
問︰幾何日而長等? | 何時蒲草和莞草一樣長? | ||
術曰:假令二日,不足一尺五寸 | 假設長了 2 天,則莞草還差 1.5 尺 | 設 ,計算得 | |
令之三日,有餘一尺七寸半 | 假設長了 3 天,則莞草長了 1.75 尺 | 設 ,計算得 | |
(使用盈不足術,求出不盈不虧時的條件) | |||
答曰:二日、十三分日之六 | 當長了 天時 | ||
各長四尺八寸、十三分寸之六。 | 等長為4尺、八又十三分之六寸 |
實際上該問題是非線性的。根據等比數列求和公式,可以將莞草與蒲草的長度差表示為:
而使用盈不足術所求出的答案實為近似值。兩者關係見右圖。
歷史
在中國最早的數學書《算數書》中,就有通過盈不足術計算面積為一畝的正方形田地的邊長的記載。[4]《九章算術》第七章「盈不足」,則是對雙假設法最早的詳細說明。[5]:116
伊斯蘭黃金時代的阿拉伯數學家也大量研究了雙假設法。阿布·卡米勒著有《雙假設法之書》(Kitāb al-khaṭaʾayn)。古斯塔·伊本·盧卡採用歐式幾何的方法,第一次對雙假設法給出了幾何證明。[5]:117
中世紀歐洲數學家斐波那契在《計算之書》的第十三章中討論了雙假設法。他明確承認該方法來自阿拉伯數學,並稱之為 elchataym,即來自阿拉伯語的 al-khaṭāʾayn。[6]在代數符號尚未普及的時代,這種萬能算法在歐洲流傳甚廣,興盛一時。[5]:116、118、127
明朝時,中國傳統數學已經衰落,《九章算術》近乎失傳,盈不足術不為人所知。利瑪竇和李之藻將克里斯托弗·克拉維烏斯的《實用算術概論》(Epitome arithmeticae practicae)編譯為《同文算指》,將其中的雙假設法稱為「疊借互征法」。[5]:130
錢寶琮最早提出,阿拉伯數學中的雙假設法來自中國的盈不足術,al-khaṭāʾayn 即與「契丹」有關。[7]李約瑟也認為有此種可能性。[8]這種說法已被中國數學史界廣泛接受;但也有學者認為,中國盈不足術是歐洲雙假設法的源頭的說法仍然缺乏令人信服的證據支持。[5]:137
參考文獻
- ^ 盈不足术. 中国大百科全书 第二版. 北京: 中國大百科全書出版社. 2009. ISBN 978-7-5000-7958-3.
- ^ 九章算術#卷第七 盈不足. 維基文庫.
- ^ 3.0 3.1 郭書春 譯註. 九章筭术译注. 上海: 上海古籍出版社. 2009. ISBN 9787532554331.
- ^ 江陵張家山漢簡整理小組. 江陵张家山汉简《算数书》释文. 文物. 2000, (9): 78–84.
- ^ 5.0 5.1 5.2 5.3 5.4 馬丁玲. 斐波那契《计算之书》研究 (博士論文). 上海交通大學. 2009.
- ^ 斐波那契 著,勞倫斯·西格爾 英譯,紀志剛 等譯. 计算之书. 北京: 科學出版社. 2008. ISBN 9787030200174.
- ^ 錢寶琮. 《九章算术》盈不足术流传欧洲考. 中國科學院自然科學史研究所 (編). 钱宝琮科学史论文选集. 北京: 科學出版社. 1927: 83–961983. CSBN 13031·2369. NLC 000333766.
- ^ 李約瑟 (著); 《中國科學技術史》翻譯小組 譯. 中国科学技术史(第三卷). 北京: 科學出版社. 1978: 266、326. CSBN 13031·717.