一
近來有一位幼年時的鄰居,從家鄉出來的,跑來看望我。見到故鄉人,想起故鄉事,屈指一算,離家已將近二十年了,記憶中故鄉的模樣,還是二十年前的。碰見這麽一位幼年朋友,在心境上好像已返老還童,一直談論幼年的往事,石坎縫兒裏尋蟋蟀,和尚廟中偷桂花,一切淘氣事都會談到。最後不知怎的,話頭卻轉到死亡上去了,朋友很鄭重地說出這樣的話來:
——王老頭子,賣湯圓的,已死去兩年了。
一個須發全白、精神飽滿、笑容可掬的老頭子的麵影,頓時從心底浮到了心尖。他叫什麽名字,我不知道,因為一直聽人家叫他王老頭子,沒有人提起過他的名字。從我自己會走到他的店裏吃湯圓的時候起,他的頭上已頂著銀色的發,嘴上堆著雪白的須,是一個十足的老頭子。祖父曾經告訴我,王老頭子在我們的那條街上開湯圓店已有二三十年。祖父和許多人都常說,王老頭子很古怪,每天隻賣一盤子湯圓,賣完就收店,喝包穀燒1,照例四兩。他今天賣的湯圓,便是昨天夜裏做的。真的,當我起得很早的時候,要是走到王老頭子的店門口,就可以看見他在升火,他的桌上有一隻盤子,盤子裏堆著雪白、細軟的湯圓,用現在我所知道的東西的形狀來說,那就有點兒像金字塔。假如要用數學教科書上的名字,那就是正方錐。
王老頭子自然是平凡、不足樹碑立傳的人,不過他的和藹可親卻是少有。我一聽到他的死耗,不禁悵惘追憶,這也就可以證明他是如何捉住兒童們的活潑、無邪的心了。王老頭子已死兩年,至少做了四五十年的湯圓。在這四五十年中,每天都做尖尖的一盤。這他一生替人們做過多少湯圓喲,我想替他算一算。然而我不能算,因為我不曾留意過那一盤湯圓從頂到底共有多少層,我現在隻來說一說,假如知道了它的層數,這總數怎麽計算,可作為對王老頭子的紀念。
二
這類題目的算法,在西洋數學中叫作積彈(Piles of Shot)和擬形數(Figurate numbers),又叫擬形級數(Figurate series)。中國叫垛積,舊數學中和它類似的算法,屬於“少廣”一類。最早見於朱世傑的《四元玉鑒》中茭草形段,如像招數和果垛疊藏各題,後來郭守敬、董祐誠、李善蘭這些人的著作中把它講得更詳細。
這裏我們先說大家從西洋數學中容易找到的積彈。積彈的計算法,已有一定的公式,因為堆積的方法不同,分為四類:如第一圖各層是成正方形的;第二圖各層是成正三角形的;第三圖是成矩形的——這三種到頂上都是尖的——第四圖各層都成矩形,而頂上是平的。用數學上的名字來說,第一圖是正方錐;第二圖是正三角錐;第三圖側麵是等腰三角形,正麵是等腰梯形;第四圖側麵和正麵都是等腰梯形。
第一圖
第一圖
第三圖
第四圖
所謂積彈,一般是知道了層數計算總數,在這裏且先將各公式寫出來。
(1)設n表示層數,也就是王老頭子的湯圓底層每邊的個數,則湯圓的總數是:
所以,若是王老頭子的那盤湯圓有十層,那就是n等於10,因此,
(2)若王老頭子的湯圓是照第二圖的形式堆,那麽,
所以,他若是也隻堆十層,總數便是:
(3)這一種不但和層數有關係,並且與頂上一層的個數也有關係,設頂上一層有p個,則
舉個例說,若第一層有五個,總共有十層,就是p等於5,n等於10,則
(4)自然這種和第一層的個數也有關係,而第一層既然也是矩形,它的個數就和這矩形的長、闊兩邊的個數有關。設頂上一層長邊有a個,闊邊有b個,則
舉個例說,若第一層的長邊有五個,闊邊有三個,總共有十層,就是a等於5,b等於3,n等於10,則
不用說,已經有公式,隻要照它計算出一個總數,是很容易的。不過,我們的問題是這公式是怎樣得來的。
要證明這公式,有三種方法。
三
第一就說數學的歸納法的證明。
什麽叫數學的歸納法,在堆羅漢中已經說過,這裏要證明的第一個公式,也是那篇裏已證明過的。為了那些不曾看過那篇的讀者,隻好簡略地說一說所謂數學的歸納法,總共含有三個步驟:
(Ⅰ)就幾個特殊的數,發現一個共同的式子。
(Ⅱ)假定這式子對於n是對的,而造出一個公式來。
(Ⅲ)設n變成了n+1,看這式子的形式是否改變。若不曾改變,那麽,這式子就成立了。
因為由(Ⅱ)已經知道這式子關於n是對的,關於n+1也是對的。而由(Ⅰ)已知它關於幾個特殊的數是對的——其實有一個就夠了。不過(Ⅰ)隻由一個特殊的數要發現較普遍的公式的形式比較困難——設若關於2是對的,那麽關於2加1也是對的。2加1是3,關於3是對的,自然關於3加1“4”也是對的。這樣一步一步地往上推,關於4加1“5”,5加1“6”,6加1“7”……就都對了。
以下就用這方法來證明上麵的公式:
王老頭子的湯圓的堆法,各層都是正方形,頂上一層是一個,第二層一邊是二個,第三層一邊是三個,第四層一邊是四個……這樣到第n層,一邊便是n個。而正方形的麵積,這是大家都已經知道的,等於一邊的長的平方。所以若就各層的個數說,王老頭子每夜所做的湯圓便是:
第一步我們容易知道:
第二步,我們就假定這式子關於n是對的,而得公式:
這就到了第三步,這假定的公式對於n+1也對嗎?我們在這假定的公式中,兩邊都加上(n+1)2這便是Sn+1,所以
這最後的形式和我們所假定的公式完全一樣,所以我們的假定是對的。
這公式是用於正三角錐形的,所謂正三角錐形,第一層是一個,第二層是一個加二個,第三層是一個加二個加三個,第四層是一個加二個加三個加四個……這樣推下去到第n層便是:
1+2+3+4+……+n
而總和便是:
Sn=1+(1+2)+(1+2+3)+(1+2+3+4)+……+(1+2+3+4+……+n)
第一步,我們找出,
第二步,我們就假定這式子關於n是對的,而得公式:
跟著到第三步,證明這假定的公式對於n+1也是對的,就是在假定的公式兩邊都加上1+2+3+4+……+n+n+1
這最後的形式,不是和我們所假定的公式的形式一樣嗎?可見我們的假定是對的。
第一步和證明前兩個公式的,沒有什麽兩樣,我們無妨省事一點兒,將它略去,隻來證明這公式對於n+1也是對的。這種堆法,第一層是p個,第二層是兩個(p+1)個,第三層是三個(p+2)個……照樣推上去,第n層是n個( p + n? 1)個。所以,
而 Sn+1=p+2(p+1)+3(p+2)+……+(n+1)(p+n)假定上麵的公式關於n是對的,則
不用說,這最後的形式,和我們假定的公式完全一樣,我們所假定的公式便是對的。
我們也來假定它關於n是對的,而證明它關於n+1也是對的。這種堆法,第一層是ab個,第二層是(a+1)(b+1)個,第三層是(a+2)(b+2)個……照樣推上去,第n層便是(a
+ n ? 1)(b
+ n ? 1)個,所以:a
+n)+n ?1)
假定上麵的公式對於n是對的,則
在形式上,這最後的結果和我們所假定的公式也沒有什麽分別,可知我們的假定一點兒不差。
四
用數學的歸納法,四個公式都證明了,按理說我們可以心滿意足了。但是,仔細一想,這種證明法,巧妙固然巧妙,卻有一個大大的困難在裏麵。這困難並不在從Sn證Sn+1這第二、第三兩步,而在第一步發現我們所要假定的Sn的公式的形式。假如別人不曾將這公式提出來,你要從一項、兩項、三項、四項……老老實實地相加而發現一般的形式,這雖然不好說不可能,但真是不容易,因此我們再說另外一種找尋這幾個公式的方法。
我把這一種方法,叫分項加合法,這是一種知道了一個級數的一般項,而求這級數的n項的和的一般的方法。
什麽叫級數、算術級數和幾何級數,大概早已在你洞鑒之中了。那麽,可以更廣泛地說,一串數,依次兩個兩個地有相同的一定的關係存在,這串數就叫級數。比如算術級數每兩項的差是相同的、一定的;幾何級數每兩項的比是相同的、一定的。當然在級數中,這兩種算是最簡單的,其他的都比較複雜,所以每兩項的關係也不易發現。
什麽叫級數的一般項?換句話說,就是一個級數的第n項。若算術級數的第一項為a,公差為d,則一般項為a+(n-1)d;若幾何級數的第一項為a,公比為r,則一般項為arn-1。回到上麵講的積彈法上去,每種都是一個級數,它們的一般項便是:(1)n2;(2)n(n+1)/2或1/2(n2+n);(3)n( p + n? 1)或np+n2-n;(4)(a
+ n ? 1)(b
+ n ? 1)或ab+(a+b)(n-1)+(n-1)2。
四個一般項除了(1)以外,都可認為是兩項以上合成的。在一般項中設n為1,就得第一項;設n為2,就得第二項;設n為3,就得第三項……設n為什麽數,就得第什麽項。所以對於一個級數,倘若能夠知道它的一般項,我們要求什麽項都可以算出來。
為了寫起來便當,我們來使用一個記號,例如
Sn=1+2+3+4+……+n
我們就寫成∑n,讀作Sigma n。∑是一個希臘字母,相當於英文的S。S是英文Sum(和)的第一個字母,所以用∑表示“和”的意思。而∑n便表示從1起,順著加2,加3,加4……一直加到n的和。同樣地,
∑n(n+1)=1·2+2·3+3·4+4·5+……+n(n+1)
∑n2=12+22+32+42+……+n2
記好這個符號的用法和上麵所說過的各種一般項,就可得出下麵的四個式子:
(1)Sn=∑n2=12+22+32+42+……+n2
這樣一來,我們可以看得很明白,隻要將(1)求出,以下的三個就容易了。關於(1)的求法運用數學的歸納法固然可以,即或不然,還可參照下麵的方法計算。
我們知道:
13-03=3·12-3·1+1
若將這n個式子左邊和左邊加攏,右邊和右邊加攏,便得
這個結果和前麵證過的一樣,但來路比較清楚。利用它,(2)(3)(4)便容易得出來。
五
前一種證明法,來得自然有根源,不像用數學的歸納法那樣突兀。但還有一點,不能使我們滿意,不是嗎?每個式子的分母都是1×2×3,就前麵的證明看來,明明隻應當是2×3,為什麽要寫成1×2×3呢?這一點,若再用其他方法來尋求這些公式,那就可以恍然大悟了。
這一種方法可以叫作差級數法。所謂擬形級數,不過是差級數法的特別情形。
怎樣叫差級數?算術級數就是差級數中最簡單的一種,例如1、3、5、7、9……這是一個算術級數,因為3-1=5-3=7-5=9-7=……=2
但是,王老頭子的湯圓的堆法,從頂上一層起,順次是1、4、9、16、25……各各兩項的差是 4-1=3, 9-4=5, 16-9=7, 25-16=9……
這些差全不相等,所以不能算是算術級數,但是這些差3、5、7、9……的每兩項的差都是2。
再如第二種三角錐的堆法,從頂上起,各層的個數依次是1、3、6、10、15……各各兩項的差是 3-1=2, 6-3=3, 10-6=4, 15-10=5……
這些差也全不相等,所以不是算術級數,不過它和前一種一樣,這些差數依次兩個的差是相等的,都是1。
我們來另找個例,如13、23、33、43、53、63……這些數立方之後便是1、8、27、64、125、216……而
(Ⅰ)8-1=7,27-8=19,64-27=37,125-64=61,216-125=91……
(Ⅱ)19-7=12,37-19=18,61-37=24,91-61=30……
(Ⅲ)18-12=6,24-18=6,30-24=6……
這是到第三次的差才相等的。
再來舉一個例子,如2,20,90,272,650,1332……
(Ⅰ)20_2=18, 90-20=70, 272_90=182, 650_272=378,1332_650=682……
(Ⅱ)70-18=52, 182-70=112, 378-182=196, 682-378=304……
(Ⅲ)112-52=60, 196-112=84, 304-196=108……
(Ⅳ)84-60=24, 108-84=24……
這是到第四次的差才相等的。
像這些例一般的一串數,照上麵的方法一次一次地減下去,終究有一次的差是相等的,這一串數就稱為差級數,第一次的差相等的叫一次差級數,第二次的差相等的叫二次差級數,第三次的差相等的叫三次差級數,第四次的差相等的叫四次差級數……第r次的差相等的叫r次差級數。算術級數就是一次差級數,王老頭子的一盤湯圓,各層就成一個二次差級數。
所謂擬形數就是差級數中的特殊的一種,它們相等的差才是1。這是一件很有趣味的東西。法國的大數學家布萊士·帕斯卡(Blaise Pascal)在他1665年發表的《算術的三角論》(Traité du triangle arithmétique)中,就記述了這種級數的作法,他作了如後的一個三角形。
這個三角形仔細玩賞一下,趣味非常豐富。它對於從左上向右下的這條對角線是對稱的,所以橫著一排一排地看,和豎著一行一行地看,全是一樣。
它的作法是:(Ⅰ)橫、豎各寫同數的1。(Ⅱ)將同行的上一數和同排的左一數相加,便得本數。即
1+1=2,1+2=3,1+3=4……2+1=3,3+3=6……3+1=4,6+4=10……
4+1=5,10+5=15……5+1=6,15+6=21……6+1=7,21+7=28……
7+1=8,28+8=36……8+1=9……
由這個作法,我們很容易知道它所包含的意味。就豎行說(自然橫排也一樣),從左起,第一行是相等的差,第二行是一次差級數,每兩項的差都是1。第三行是二次差級數,因為第一次的差就是第二行的各數。第四行是三次差級數,因為第一次的差就是第三行的各數,而第二次的差就是第二行的各數。同樣地,第五行是四次差級數,第六行是五次差級數……
這種玩意兒的性質,布萊士·帕斯卡有過不少的研究,他曾用這個算術三角形討論組合,又用它發現許多關於概率的有趣味的東西。
上麵已經說過了,王老頭子的一盤湯圓,各層正好成一個二次差級數。倘若我們能夠知道計算一般差級數的和的公式,豈不是占了大大的便宜了嗎?
對,我們就來講這個。讓我們偷學布萊士·帕斯卡來作一個一般差級數的三角形。
差,英文是difference,和用S代Sum一般,如法炮製就用d代difference。本來已夠用了,然而我們還可以更別致一些,用一個相當於d的希臘字母Δ來代。設差級數的一串數為u1,u2,u3……第一次的差為Δu1,Δu2,Δu3……第二次的差為Δ2u1,Δ2u2,Δ2u3……第三次的差為Δ3u1,Δ3u2,Δ3u3……這樣一來,就得下麵的三角形。
這個三角形的構成,實際上說,非常簡單,下一排的數,總是它上一u5,排的左右兩個數的差,即:加法可以說是減法的還原,因此由上麵的關係,便可得出:
照樣地,第二排當作第一排,第三排當作第二排,便可得:
把(1)(2)(3)三個式子一比較,右邊各項的數係數是1,1;1,2,1;1,3,3,1。這恰好相當於二項式(a+b)=a+b,(a+b)2=a2+2ab+b2,(a+b)3=a3+3a2b+3ab2+b3,各展開式中各項的係數。根據這個事實,依照數學的歸納法的步驟,我們無妨走進第二步,假定推到一般,而得出:
照前麵的樣子,把第n+1排作第一排,第n+2排作第二排,便可得:
將這兩個式子相加,很巧就得:
這不是已將數學的歸納法的三步走完了嗎?可見我們假定對於n的公式若是對的,那麽,它對於n+1也是對的。而事實上它對於1、2、3、4等都是對的,可見得它對於6、7、8……也是對的,所以推到一般都是對的。倘若你還記得我們講組合——見棕欖謎——時所用的符號,那麽就可將這公式寫得更簡明一點:
這個式子所表示的是什麽,你可知道?它就是用差級數的第一項,和各次差的第一項,表出這差級數的一般項。假如王老頭子的那一盤湯圓總共堆了十層,因為,這差級數的第一項u1是1,第一次差的第一項Δu1是3,第二次差的第一項Δ2u1是2,第三次以後的Δ3u1、Δ4u1都是0,所以第十層的湯圓的個數便是:
這個得數誰也用不到懷疑,王老頭子的那盤湯圓的第十層,正是每邊十個的正方形,總共恰好一百個。
我們要求的原是計算差級數和的公式,現在跑這野馬幹什麽?
別著急!朋友!就來了!再弄一個小小的戲法,保管你心滿意足。
我們在前麵差級數三角形的頂上加一串數v1、v2、v3……vn、vn+1不過就是胡亂寫些數,它們每兩項的差,就是u1、u2、u3……un。這樣一來,它們便是n+1次差級數,而第一次的差為
若是我們惠而不費地將vn+1點綴得富麗堂皇些,無妨將它寫成下麵的樣子:
假使造這串數的時候,取巧一點,v1就用0,那麽,便得:
所以若用求一般項的公式來求vn+1得出來的便是u1+u2+u3+……+un的和。但就公式說,這個差級數中,u1=0,Δu1=u1,Δ2u1=Δu1……Δn+1u=Δnu1
這個戲法總算沒有變差,由此我們就知道:
假如照用慣了的算術級數的樣兒將a代第一項,d代差,並且不用組合所用的符號 C rn,那麽n次差級數n項的和便是:
有了這公式,我們就回頭去解答王老頭子的那一盤湯圓,它是一個二次差級數,對於這公式說:a=1,d1=3,d2=2,d3=d4=……=0。
第二種三角錐的堆法,前麵也已說過,仍是一個二次差級數,對於這公式,a=1, d1=2, d2=1,d3=d4=……=0。
至於第三種堆法,它各層的個數及各次的差是:
也是一個二次差級數,u1=p,d1=p+2,d2=2,d3=d4=……=0
最後,再把這個公式運用到第四種堆法,它的每層的個數以及各次的差是這樣的:
ab,(a+1)(b+1),(a+2)(b+2),(a+3)(b+3)……
(a+b)+1,(a+b)+3,(a+b)+5……
2, 2 ……
所以也是一個二次差級數,就公式說,u1=ab,Δu1=(a+b)+1,Δu2=2,Δu3=Δu4=……=0
用差級數的一般求和的公式,將我們開頭提出的四個公式都證明了。這種證明真可以算是無疵可指,就連最後分母中那事實上無關痛癢的1×2×3中的1也給了它一個詳細說明。這種證法,不但有這一點點的好處,由上麵的經過看來,我們所提出的四個公式,全都是這差級數求和的公式的運用。因此隻要我們已徹底地了解了它,這四個公式就不值一顧了,數學的理論的發展,永遠是霸道橫行,後來居上的。
六
一開頭曾經提到我們的老前輩朱世傑先生,這裏就以他老人家的功績來作結束。上麵我們隻提到四種堆法,已鬧得滿城風雨,借用了許多法寶,才達到心安理得的地步。然而在朱老先生的大著《四元玉鑒》中,“茭草形段”隻有七題,“如像招數”隻有五題,“果垛疊藏”雖然多一些,也隻有二十題,總共不過三十二題。他所提出的堆垛法有些名詞卻很別致,現在列舉在下麵,至於各種求和的公式,那不用說,當然可依樣畫葫蘆地證明了。
(1)落一形——就是三角錐形。
(2)芻甍垛——就是前麵第三種堆法。
(3)芻童垛——就是矩形截錐台。
(4)撒星形——三角落一形——就是1,(1+3),(1+3+6)……
(5)四角落一形——就是 12,(12+22),(12+22+32)……(12+22+……+n2)
(6)嵐峰形——就是1,(1+5),(1+5+12)……
(8) 四 角 嵐 峰 形 —— 就 是1·12,2(12+22),3(12+22+32) ……n(12+22+32+……+n2)