鄭碩,孫小淳
(中國科學(xué)院大學(xué),北京100049)
“盈不足術(shù)”是我國古代一項(xiàng)非常重要的數(shù)學(xué)成就,它對(duì)世界數(shù)學(xué)的發(fā)展同樣產(chǎn)生過重大影響[1]。在公元前二世紀(jì)初的數(shù)學(xué)書《算數(shù)書》中,就有通過“盈不足術(shù)”計(jì)算面積為一畝的正方形田地邊長的記載[2]。中國傳統(tǒng)數(shù)學(xué)經(jīng)典《九章算術(shù)》中專門有一章介紹“盈不足術(shù)”的各種形式及其應(yīng)用。將復(fù)雜的數(shù)學(xué)問題通過兩次精巧的假設(shè),轉(zhuǎn)化成盈不足問題的形式,進(jìn)而求解。這種以特定的數(shù)學(xué)模型來處理一大類應(yīng)用問題的方法,正是中算家所擅長的[3]。
基于“盈不足術(shù)”這種“萬能性”,數(shù)學(xué)史家在考察“盈不足術(shù)”時(shí),傾向于把它描述成是一個(gè)可以不斷擴(kuò)展其運(yùn)用范圍的方法,“盈不足術(shù)”中蘊(yùn)含的是一種“模型化”方法,可用于解決各種數(shù)學(xué)問題。這種樂觀進(jìn)步的編史學(xué)思路大體上也符合“盈不足術(shù)”的一般情況,但在一些特殊情況下,“盈不足術(shù)”在解題上的拓展就出現(xiàn)了問題。本文探討的“蒲莞相生”問題,就屬于這種情況。
“盈不足術(shù)”可以從線性問題拓展到非線性問題的求解,就是一個(gè)典型的編史學(xué)誤讀。錢寶琮認(rèn)為,使用“盈不足術(shù)”求解一次函數(shù)問題時(shí),這種解法是準(zhǔn)確的;求解非一次函數(shù)時(shí),得的數(shù)值是所求數(shù)的一個(gè)近似值[4]。李繼閔也認(rèn)為“盈不足術(shù)”解決問題給出線性問題的精確解和非線性問題的近似解[5]。白尚恕同樣指出一次方程問題,以“盈不足術(shù)”計(jì)算,都得確切解,非一次方程問題,所得為近似解[6]。這里所謂“非線性問題”,指的是《九章算術(shù)》中的“蒲莞并生”“良駑相逢”“兩鼠對(duì)穿”等問題。本研究以“蒲莞并生”問題為例進(jìn)行分析。結(jié)果表明,“盈不足”章中的“蒲莞并生”問題并不是非線性問題,而是分段線性問題,所以使用“盈不足術(shù)”求解“蒲莞并生”問題得到的不是近似解,而是精確解。
本文對(duì)《九章算術(shù)》中使用“盈不足術(shù)”求解的二十個(gè)問題入手,對(duì)“盈不足術(shù)”的問題類型作出了劃分,可以分為“一盈一不足”“兩盈”“兩不足”“一盈一適足”“一不足一適足”5種情形[7]。然后對(duì)“盈不足術(shù)”問題的拓展進(jìn)行分析。當(dāng)遇到“蒲莞并生”問題,原來“從線性問題”拓展到“非線性問題”的看法就成問題了。沈康身對(duì)“蒲莞并生”做出了正確的理解,用分段線性函數(shù)來描述蒲莞的生長,解決的還是非線性問題[8]。本文在此基礎(chǔ)上,對(duì)這一問題做更加精細(xì)的解讀,以求對(duì)“盈不足術(shù)”有更加深刻的理解。
《九章算術(shù)》成書于東漢(公元25年到220年)時(shí)期[9],是一部數(shù)學(xué)問題集,包括246個(gè)問題,并給出了解法。其中第七章叫“盈不足”,里面有20個(gè)問題,都是用“盈不足術(shù)”來解決。其中典型的是前4道題“今有共買物”“今有共買雞”“今有共買琎”和“今有共買?!??!毒耪滤阈g(shù)》中的盈不足問題,
一般地可表示為下列“共買物”的數(shù)學(xué)模型[10]。
今有共買物,人出八,盈三;人出七,不足四。問:人數(shù)、物價(jià)各幾何?
答曰:七人,物價(jià)五十三。[11]288
今有共買雞,人出九,盈一十一;人出六,不足十六。問:人數(shù)、雞價(jià)各幾何?
答曰:九人,雞價(jià)七十。[11]288
今有共買琎,人出半,盈四;人出少半,不足三。問:人數(shù)、琎價(jià)各幾何?
答曰:四十二人,琎價(jià)十七。[11]288
今有共買牛,七家共出一百九十,不足三百三十;九家共出二百七十,盈三十。問:家數(shù)、牛價(jià)各幾何?
答曰:一百二十六家,牛價(jià)三千七百五十。[11]289
《九章算術(shù)》給出的標(biāo)準(zhǔn)“盈不足”術(shù)文為:
置所出率,盈、不足各居其下。令維乘所出率,并以為實(shí)。并盈、不足為法。實(shí)如法而一。有分者,通之。盈不足相與同其買物者,置所出率,以少減多,余,以約法、實(shí)。實(shí)為物價(jià),法為人數(shù)。其一術(shù)曰:并盈、不足為實(shí)。以所出率以少減多,余為法。實(shí)如法得一人。以所出率乘之,減盈、增不足即物價(jià)。[11]291-292
設(shè)兩次付錢數(shù)(所出率)分別為a1和a2,盈(多余錢數(shù))、不足(缺少錢數(shù))分別為b1和b2?!爸盟雎?,盈、不足各居其下”,即矩陣維乘”也即交叉相乘,“并以為實(shí)”就是將交叉相乘的結(jié)果相加a1b2+a2b1作被除數(shù);“并盈、不足為法”是將盈數(shù)和不足數(shù)相加b1+b2作除數(shù);“實(shí)如法而一”即就是“不盈不朒”時(shí)每人要出的錢數(shù)。
“置所出率,以少減多”是以兩次假設(shè)人均出錢數(shù)a1和a2作差,|a1-a2|;“余,以約法、實(shí)。實(shí)為物價(jià),法為人數(shù)”是以|a1-a2|為除數(shù),將“實(shí)”a1b2+a2b1和“法”b1+b2代入算式;便得到物品價(jià)錢為和買家人數(shù)為將a1,a2,b1,b2代入算式,即得物品價(jià)錢和買家人數(shù)。“其一術(shù)”即另一種方法是用較大的“所出率”乘以人數(shù)需要“減盈”,以較小的“所出率”乘以人數(shù)則需要“增不足”。即物價(jià)同樣可以求得物品價(jià)錢。
上述實(shí)際為“盈不足”問題的一般解法的代數(shù)表達(dá)??紤]到實(shí)際解題過程是一個(gè)試驗(yàn)值的過程,會(huì)出現(xiàn)“一盈一不足”型、“兩盈”型、“兩不足”型、“一盈一適足”型、“一不足一適足”型5種情形,分別對(duì)應(yīng)于b1>0,b2>0;b1>0,b2<0;b1<0,b2>0;b1>0,b2=0;b1<0,b2=0的情況?!毒耪滤阈g(shù)》對(duì)上述五種情況都給出了例題?!耙挥徊蛔恪毙途褪巧厦媪信e的第1題至第4題。
“兩盈”型的例題是第5題“今有共買金”,“兩不足”型的例題是第6題“今有共買羊”。
今有共買金,人出四百,盈三千四百;人出三百,盈一百。問:人數(shù)、金價(jià)各幾何?
答曰:三十三人,金價(jià)九千八百。[11]294
今有共買羊,人出五,不足四十五;人出七,不足三。問:人數(shù)、羊價(jià)各幾何?
答曰:二十一人,羊價(jià)一百五十。[11]294
對(duì)這兩種情況《九章算術(shù)》給出的解法術(shù)文為:
兩盈、兩不足術(shù)曰:置所出率,盈、不足各居其下。令維乘所出率,以少減多,余為實(shí)。兩盈、兩不足以少減多,余為法。實(shí)如法而一。有分者,通之。兩盈兩不足相與同其買物者,置所出率,以少減多,余,以約法、實(shí),實(shí)為物價(jià),法為人數(shù)。其一術(shù)曰:置所出率,以少減多,余為法。兩盈、兩不足以少減多,余為實(shí)。實(shí)如法而一,得人數(shù)。以所出率乘之,減盈、增不足,即物價(jià)。[11]294-295
依據(jù)術(shù)文,可知解“兩盈”“兩不足”型問題的公式為
式(1)、(2)、(3)分別表示每人要出的錢數(shù)、物品價(jià)錢、買家人數(shù)。這三個(gè)公式實(shí)際就是針對(duì)兩個(gè)特殊情況把上述典型的解式重新表達(dá)一下。
“一不足一適足”型的例題是第7題“今有共買犬”,“一盈一適足”型的例題是8題“今有共買豕”。
今有共買犬,人出五,不足九十;人出五十,適足。問:人數(shù)、犬價(jià)各幾何?
答曰:二人,犬價(jià)一百。[11]297
今有共買豕,人出一百,盈一百;人出九十,適足。問:人數(shù)、豕價(jià)各幾何?
答曰:一十人,豕價(jià)九百。[11]297
同樣地,《九章算術(shù)》也給出了這兩種類型問題的術(shù)文:
盈適足、不足適足術(shù)曰:以盈及不足之?dāng)?shù)為實(shí)。置所出率,以少減多,余為法。實(shí)如法得一人。其求物價(jià)者,以適足乘人數(shù),得物價(jià)。[11]297
依據(jù)術(shù)文,可知解“一不足一適足”“一盈一適足”型問題的公式為
式(4)(5)分別表示物品價(jià)錢、買家人數(shù)。因?yàn)檫m足的正是人均出錢數(shù),所以每人要出的錢數(shù)就是a2。因?yàn)樵凇毒耪滤阈g(shù)》中并沒有明確零的概念,本文表述使用的a1、a2、b1、b2均為正數(shù),且都是以少減多。如果引入負(fù)數(shù),用負(fù)的盈數(shù)表示不足,負(fù)的不足表示盈,再用零表示適足,那么,上述5種類型就可以統(tǒng)一化歸到第1種類型即標(biāo)準(zhǔn)的“盈不足”公式求解。
上述8道例題中第1題至第4題即是標(biāo)準(zhǔn)的“一盈一不足”型問題,第5題至第8題分別是“兩盈”型、“兩不足”型、“一不足一適足”型、“一盈一適足”型問題。這8道題目都符合盈不足問題的基本形式,數(shù)理關(guān)系簡單明了,都有明確的兩次假設(shè)及相應(yīng)的結(jié)果,依據(jù)術(shù)文即可方便求解,可以說是“盈不足術(shù)”的“范型”問題,亦可稱作“盈不足術(shù)”的“本術(shù)”問題。本文認(rèn)為這應(yīng)是《九章算術(shù)》為拓展使用“盈不足術(shù)”所做的“模型”,為的是對(duì)號(hào)入座,將一般問題都劃歸為這5個(gè)“模型”解法。
通常求解數(shù)學(xué)問題的方法是依據(jù)題目中所給的數(shù)據(jù),一步步推演得到結(jié)果。因?yàn)槊恳活悊栴}有其特殊的思維過程,碰到新問題如果不得要領(lǐng),新問題就如同“黑箱”。但對(duì)于一個(gè)一般的數(shù)學(xué)問題,先假設(shè)一個(gè)結(jié)果,代入題目中驗(yàn)算,肯定是盈、不足、適足三種情況之一。只需要通過兩次假設(shè),就可以把原來的問題劃歸為“盈不足”問題再進(jìn)行求解,而無須考慮題目中紛繁的數(shù)量關(guān)系。就如“黑箱”,雖然不能觀察其內(nèi)部的系統(tǒng)狀態(tài),但只用分析其輸入、輸出變量,依然可以確定其結(jié)構(gòu)參數(shù)。
《九章算術(shù)》“盈不足”章里接下來列舉的12道例題,就是將一般的數(shù)學(xué)問題轉(zhuǎn)化為標(biāo)準(zhǔn)“盈不足”問題來處理。即,雖然所舉例題不符合“盈不足術(shù)”的“范型”問題的形式,但仍可利用兩次假設(shè)將其劃歸為“盈不足術(shù)”的“本術(shù)”問題。錢寶琮主張非標(biāo)準(zhǔn)“盈不足”問題可分為四類“:互換”類,簡單的比例問題(第9題、第15題);“合率”類,分工合作問題(第10題);“推解”類問題(第13題、第16題、第17題、第20題)“蒲莞”類問題(第11題、第12題、第19題);“方程”類,方程本術(shù)問題(第14題、第18題)[12]。這里分別列舉說明:
“盈不足”章第15題。
今有漆三得油四,油四和漆五。今有漆三斗,欲令分以易油,還自和余漆。問:出漆、得油、和漆各幾何?
答曰:出漆一斗一升四分升之一,得油一斗五升,和漆一斗八升四分升之三。[11]305
術(shù)曰:假令出漆九升,不足六升;令之出漆一斗二升,有余二升。[11]306
題意是知道3份漆可換得4份油,4份油可調(diào)和5份漆,現(xiàn)在有3斗漆,要用其中一部分換油,再用換來的油調(diào)和剩余的漆,問換油要多少漆,換得多少油,又調(diào)和了多少漆?按照術(shù)文,3斗就是30升,假設(shè)出9升漆,則可以換得12升油,調(diào)和15升漆,但30升漆出9升還余21升,15升漆有油可以調(diào)和,有6升漆沒有油可以調(diào),所以是不足6升;再假設(shè)出12升漆,則可以換得16升油,調(diào)和20升漆,但30升漆出12升還余18升,而所換得的油可以調(diào)和20升漆,所以是多余2升。代入盈不足公式得應(yīng)出漆得油1升,和漆
“盈不足”章第10題。
今有垣高九尺。瓜生其上,蔓日長七寸;瓠生其下,蔓日長一尺。問:幾何日相逢?瓜、瓠各長幾何?
答曰:五日十七分日之五,瓜長三尺七寸一十七分寸之一,瓠長五尺二寸一十七分寸之一十六。[11]299
術(shù)曰:假令五日,不足五寸。令之六日,有余一尺二寸。[11]299
題意是知道有墻高9尺,瓜蔓自墻頂向下延伸,每日長7寸,葫蘆自墻角向上生長,每日長1尺,問幾日后兩者相遇,各自長了多少?按照術(shù)文,假設(shè)5日瓜、瓠相遇,瓜蔓生長5日長度是3.5尺,葫蘆生長5日長度是5尺,和9尺的墻相比少了5寸,這就是不足5寸;再假設(shè)6日瓜、瓠相遇,瓜蔓生長6日長度是4.2尺,葫蘆生長6日長度是6尺,和9尺的墻相比多了1.2尺,所以有余1.2尺。代入盈不足公式得相遇日數(shù)日,瓜長度尺,亦即3尺寸,瓠長度亦即5尺寸。
“盈不足”章第13題。
今有醇酒一斗,直錢五十;行酒一斗,直錢一十。今將錢三十,得酒二斗。問:醇、行酒各得幾何?
答曰:醇酒二升半,行酒一斗七升半。[11]303
術(shù)曰:假令醇酒五升,行酒一斗五升,有余一十;令之醇酒二升,行酒一斗八升,不足二。[11]303
題意是知道醇酒每斗值50錢,行酒每斗值10錢,用30錢買2斗酒,醇酒和行酒各買多少?按照術(shù)文,醇酒5錢1升,行酒1錢1升。假設(shè)買5升醇酒、15升行酒,那么總價(jià)是5×5+1×15=40錢,盈10錢;再假設(shè)買2升醇酒,18升行酒,總價(jià)是5×2+1×18=28錢,不足2錢。代入盈不足公式得升,即買醇酒升,買行酒升。
“盈不足”章第14題。
今有大器五、小器一,容三斛;大器一、小器五,容二斛。問:大、小器各容幾何?
答曰:大器容二十四分斛之十三,小器容二十四分斛之七。[11]303
術(shù)曰:假令大器五斗,小器亦五斗,盈一十斗;令之大器五斗五升,小器二斗五升,不足二斗。[11]304
題意是知道5件大器,1件小器容量是3斛,1件大器,5件小器容量是2斛,問1件大器和1件小器容量各是多少?按照術(shù)文,3斛就是30斗,先設(shè)大器容量是5斗,根據(jù)已知條件一,則小器容量是30-5×5=5斗,推得1件大器,5件小器容量是30斗,較已知條件二余了10斗;再假設(shè)大器容量是5.5斗,按已知條件一得小器容量是30-5×5.5=2.5斗,推得1件大器,5件小器容量是18斗,較已知條件二不足2斗。代入“盈不足”公式得大器容量是斛,小器容量是亦即斛。
從以上幾題可以看出,題目中的已知條件和問題之間的關(guān)系并不十分明顯,甚至有些錯(cuò)綜復(fù)雜,但并不妨礙使用兩次巧妙的假設(shè)將題目轉(zhuǎn)化為“盈不足”問題,然后套用公式進(jìn)行求解,“盈不足術(shù)”的運(yùn)用由此得到了拓展。
一般認(rèn)為,用“盈不足術(shù)”解數(shù)學(xué)問題,只有在求解一元一次方程的問題時(shí),才能求出精確解。以現(xiàn)代的代數(shù)式表示
即如果假設(shè)x為所求的數(shù),依照題目中所示的條件,通過兩次假設(shè),算出f(a1)=b1和f(a2)=-b2代入公式(7)得
很明顯,如果問題屬于線性問題,f(x)就是通過(a1,b1)和(a2,-b2)的直線,其與x軸的交點(diǎn)就是f(x)的根;而為非線性問題時(shí),通過(a1,b1)和(a2,-b2)的直線與x軸的交點(diǎn)并不是f(x)的根,“盈不足術(shù)”實(shí)際上是一種線性插值的方法,這種解法得到的結(jié)果只可能是近似解。
且看“盈不足”章第11題“蒲莞并生”問題。
今有蒲生一日,長三尺;莞生一日,長一尺。蒲生日自半,莞生日自倍。問:幾何日而長等?
答曰:二日十三分日之六,各長四尺八寸一十三分寸之六。[11]301
術(shù)曰:假令二日,不足一尺五寸;令之三日,有余一尺七寸半。[11]301
題意是知道蒲草第1日長高3尺,莞草第1日長高1尺,之后蒲草每日長高數(shù)是前一日的一半,而莞草是前一日的兩倍,問兩種植物多少日高度相等?按照術(shù)文,假設(shè)2日高度相等,則蒲草生長了4.5尺,莞草生長了3尺,相差1.5尺,所以是不足一尺五寸;再假設(shè)3日高度相等,則蒲草生長了5.25尺,莞草生長了7尺,超過1.75尺,這就是有余一尺七寸半。代入盈不足公式得長度相等日數(shù)日,各自高度尺,亦即4尺寸。
即這是一個(gè)指數(shù)方程,并非是一元一次方程,借助對(duì)數(shù)可求得x=log26≈2.59日,與“盈不足術(shù)”所得的解略有不同。這樣理解,“盈不足術(shù)”看起來是拓展到了“非線性問題”的求解,只不過所得解為近似解。
然而實(shí)際情況并非如此。其實(shí)關(guān)于“蒲莞并生”問題,“蒲生日自半,莞生日自倍”意思蒲和莞每日都是等速率生長的。即蒲第1日生長速率恒為3,第2日生長速率恒為第3日生長速率恒為莞第1日生長速率恒為1,第2日生長速率恒為2,第3日生長速率恒為4……其累加生長高度圖像是離散階梯式的,并非是連續(xù)的光滑曲線,如圖1所示。
圖1 蒲莞累加生長高度折線圖Fig.1 Line graph of cattail and bulrush accumulated growth height
所以“蒲莞并生”問題正確的解應(yīng)該是
其中L1為蒲生長長度,L2為莞生長長度。蒲和莞應(yīng)該在2<x<3時(shí)長度相等,列出方程1+2+22(x-2),解得日[8],因?yàn)樵谶@一段是線性方程,所以按照盈不足術(shù)求解可以得到日的精確解。
沈康身還指出,對(duì)于等比級(jí)數(shù)和等差級(jí)數(shù)來講,非正整數(shù)的項(xiàng)數(shù)在數(shù)學(xué)上是無意義的[8]。因此“蒲莞并生”問題根本不能用上述指數(shù)方程求解,需進(jìn)一步分析。判斷《九章算術(shù)》中問題的解題過程,不能僅依據(jù)“術(shù)曰”所說的方法。實(shí)際解題過程,應(yīng)該比“術(shù)曰”所講的更復(fù)雜,“術(shù)曰”很可能隱藏了一些中間的“試錯(cuò)”過程。
不妨來想象一下“試錯(cuò)”過程,分三種情況:
第一種情況:假令一日,不足兩尺;令之二日,不足一尺五寸。這樣這個(gè)問題就對(duì)應(yīng)上述的“兩不足”型問題,如第6題。照此求得的解為:
第二種情況:假令一日,不足兩尺;令之三日,有余一尺七寸半。這同“術(shù)曰”一樣,對(duì)應(yīng)的是“一盈一不足”型問題,如第1題至第4題,但假設(shè)的天數(shù)不一樣。答案是:
第三種情況:假令三日,有余一尺七寸半;令之四日,有余九尺三寸四分寸之三。對(duì)應(yīng)的是“兩盈”型問題,如第5題,則答案應(yīng)該是:
上面三種假設(shè)情況應(yīng)是在解題過程中可能出現(xiàn)的情況,但是得到的解與正確解大相徑庭,問題就在于:在假設(shè)的區(qū)間內(nèi),蒲莞的高度變化根本不是線性的,而運(yùn)用只能用于求解線性問題的“盈不足術(shù)”求解,當(dāng)然會(huì)出問題。根據(jù)上面的數(shù)學(xué)式表述,“蒲莞并生”實(shí)際上是一個(gè)“分段線性問題”。《九章算術(shù)》“術(shù)曰”給出的解法,兩個(gè)“假令”值已經(jīng)處在其中一段線性區(qū)間,這時(shí),問題已經(jīng)變成了“線性問題”,解就在這個(gè)區(qū)間中,因而解是精確的。實(shí)際解題不可能一次就到這一步,前面可能的“試錯(cuò)”過程被隱藏了。
《九章算術(shù)》中的“盈不足術(shù)”構(gòu)造了解決一般數(shù)學(xué)問題的算法基礎(chǔ),在運(yùn)用代數(shù)方法解決問題有困難時(shí),這種利用兩次假設(shè)與結(jié)果對(duì)比的“雙設(shè)法”把表面非盈不足型問題劃歸為盈不足型問題然后再求解,為解決數(shù)學(xué)問題拓展了新思路。“盈不足術(shù)”是中國數(shù)學(xué)史上解應(yīng)用問題的一種別開生面的創(chuàng)造,它在我國古代算法中占有相當(dāng)重要的地位[13]。這種方法無疑是可以拓展到解決非線性問題的,但同時(shí)必須對(duì)非線性變化的細(xì)節(jié)有所分析。
本文分析的“蒲莞并生”問題,過去的研究者可能出于對(duì)“盈不足術(shù)”的自信,就直接認(rèn)為《九章算術(shù)》已經(jīng)把“盈不足術(shù)”拓展到非線性的問題解決了。但經(jīng)仔細(xì)分析表明,“蒲莞并生”問題并不是嚴(yán)格的“非線性問題”,而是分段的“線性問題”。當(dāng)試解值接近真值到一定區(qū)間時(shí),在那個(gè)區(qū)間中就是“線性問題”,使用“盈不足術(shù)”求解的“蒲莞并生”問題仍然是線性問題,而并不是非線性問題。這樣,對(duì)《九章算術(shù)》使用“盈不足術(shù)”解決問題的范圍,就有了更加準(zhǔn)確的認(rèn)識(shí)。