十、王老头子的汤圆(1 / 1)

数学趣味 刘薰宇 4057 字 1个月前

近来有一位幼年时的邻居,从家乡出来的,跑来看望我。见到故乡人,想起故乡事,屈指一算,离家已将近二十年了,记忆中故乡的模样,还是二十年前的。碰见这么一位幼年朋友,在心境上好像已返老还童,一直谈论幼年的往事,石坎缝儿里寻蟋蟀,和尚庙中偷桂花,一切淘气事都会谈到。最后不知怎的,话头却转到死亡上去了,朋友很郑重地说出这样的话来:

——王老头子,卖汤圆的,已死去两年了。

一个须发全白、精神饱满、笑容可掬的老头子的面影,顿时从心底浮到了心尖。他叫什么名字,我不知道,因为一直听人家叫他王老头子,没有人提起过他的名字。从我自己会走到他的店里吃汤圆的时候起,他的头上已顶着银色的发,嘴上堆着雪白的须,是一个十足的老头子。祖父曾经告诉我,王老头子在我们的那条街上开汤圆店已有二三十年。祖父和许多人都常说,王老头子很古怪,每天只卖一盘子汤圆,卖完就收店,喝包谷烧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)