书城科普读物探索未知-读故事谈数学
45047900000005

第5章 庖丁解牛

《庄子》中有一个庖丁(厨师)为梁惠王宰牛的故事。

梁惠王的那位厨师杀牛的技术真是到了炉火纯青的地步,只见他挥刀一刺,一头整牛便骨肉分离。筋骨撕裂的响声像动听的音乐,手足运动的姿势像优美的舞蹈。

梁惠王称赞庖丁的技术太好了,问他怎么会使技术达到这种神奇的境地的。

庖丁回答说:“我爱好的是宰牛的规律,比一般人就技术学技术高了一个档次。我初学宰牛时,看见的都是一头头囫囵的牛;三年之后,我看见的就不再是一头头完整的牛了,而是骨肉与经络的结构框架;到现在我根本不用眼睛看牛,而是凭着感觉去行动了。解牛时,顺着牛体的自然结构,分开肌肉中的缝隙,通过骨节间的孔道,一切动作都按照牛体本来具有的结构进行。刀子连经络、筋腱都从来没有碰过,更不用说碰着骨头了。技术高明的厨师,一年要换一把刀,因为他们专用刀割肉;普通的厨师,一个月就要换一把刀,因为他们的刀常常砍着骨头。至于我用的刀,已经19年了,宰割了几千头牛,但刀口还像新的一样锋利。要知道牛的骨节有很大的空隙,而刀口却非常薄,把很薄的刀口插入很大的空隙中,真是绰绰有余,大有回旋的余地哩!所以,19年过去了,我的刀子还像新的一样。即使熟练到了这种程度,每碰到筋骨交错绞在一起的地方,我仍然不敢掉以轻心,轻轻地、慢慢地、聚精会神地把它们分开……”

在数学中也常常碰到“分解”的问题,例如分解因式、分解图形等等,庖丁解牛的故事能否给我们一些什么启示呢?面对要分解的对象,我们也要像庖丁一样,目无全“牛”。掌握其结构,分开其经络,找出其空隙,然后顺着自然的结构从空隙处下刀,才能游刃有余,使问题迎刃而解。

有一个在国内外都广泛流传的有关分牛的数学趣题:有一位老农在临终的时候,要把他的财产17头牛分给三个儿子。他立下遗嘱:“我遗下的17头牛,老大得12,老二得13,老三得19,你们自己去分配吧。但不准把牛卖了分钱或把牛杀了分肉。”老人家去世之后,三兄弟根据老人的遗愿,把17头牛分来分去,无论如何也不能按遗嘱规定的比例分开。弟兄们只好去请舅舅来裁决。舅舅是个聪明人,思索了一阵之后,便牵着自己的一头牛到外甥家来主持分割遗产。他宣布:“你们原有17头牛,现在我把我的一头牛也加上去,共是19头牛。老大占12,你就牵走9头吧;老二占13,你得6头,老三是19,可得2头。“三兄弟一盘算每人都比原来期望得到的多,都高高兴兴地表示同意。最后,还剩下舅舅那头牛没有分掉,仍旧物归原主,由舅舅牵回去了。

你看多奇怪,这是怎么一回事呢?

原来聪明的舅舅发现了牛中的“空隙”;因为12,13,19三个数加起来,并不到百分之百:12+13+19=1718

因此,把18头牛依次分去12,13,19后,还剩118,即1头牛。

这个古老的问题,有多种不同的说法。有说故事发生在阿拉伯的,也有说发生在印度的;有说分牛的,也有说分马的;牛的头数有说是17头的,也有说是11头的;三兄弟所占的比例也互有差异。因此,数学家干脆撇开这些具体的内容,把它抽象概括为一个统一的数学问题:a,b,c都是正整数,且满足0<a<b<c,以及1a+1b+1c=nn+1(1)

其中n为奇数,试求出a,b,c和n。

这里的1a,1b,1c分别是三个儿子所此路不通的比例,n是老人所有的牛数。

方程(1)是数论中的不定方程,它有7种不同的解答。因此,这个趣题就数量上讲就可以编成7种不同的形式,无怪各地流传的不尽相同。

现在我们来解出方程(1),像庖丁解牛一样,我们先寻找“空隙”,即寻找薄弱环节。薄弱环节在哪里呢?

首先注意,方程(1)有一个很显著的特点:方程的右边随着n的增大而接近于1,方程的左边a,b,c则不能太大,如果太大,1a+1b+1c就中可能接近于1。这就是最大的“空隙”,我们应先从估计a,b,c和n的大小入手。

因为3个儿子所得的牛数都不相同,最少要有1+2+3=6头牛才能办到,又因为三个儿子所得的牛加起来还不到100%,所以只有6头牛还不够,这就推出了n≥7。

发现n≥7,这是一个最大的“空隙”,从这里下刀,顺着筋络再理下去。

a,b,c三个数中,最小的数a不能大于2,否则便有a≥3,b≥4,c≥5。从而1a+1b+1c≤13+14+15=4760<45

从这个式子推出n必须小于4,与n≥7矛盾。这个矛盾证明了a≤2。但a也明显地不能等于1,所以a=2。

a=2就像一块已分裂开的骨肉,应该先把它割下来。即用a=2代入(1)式,a即被消掉:1b+1c=nn+1-12=12-1n+1=n-12(n+1)(2)

同样地,由(2)式可知,较小的b不能大于4。否则,便有b≥5,c≥6,从而1b+1c≤15+16=1113<616=7-12(7+1)

同样地得出n<7,与n≥7矛盾。这个矛盾证明了b≤4。又因b>a=2,所以b只能取3或4两个值。b也就成了一块分裂开来的筋肉,也可先把它割下来,即分别令b=3或b=4,代入(2)将b消掉。

将b=3代入(2)式,得到

1c=12-13-1n+1=16-1n+1(4)

将b=4代入(2)式,得到

1c=12-14-1n+1=14-1n+1(5)

现在我们根据(4)式和(5)式来讨论c与n的值。

在(4)中,易知c≥7。另一方面,因n≥7,便有1c≥16-17+1=16-18=112,所以c=112。即有7≤c≤12,在(4)中顺次令c=7,8…12,即得:当c=7,1n+1=16-17=142=141+1,n=41;当c=8,1n+1=16-18=124=123+1,n=23;当c=9,1n+1=16-19=118=117+1,n=17;当c=10,1n+1=16-110=115,n无奇数解;当c=11,1n+1=16-111=566,n无奇数解;当c=12,1n+1=16-112=112=111+1,n=11。

在(5)中,易知c≥5。又因n≥7,所以1c≥14-17+1=14-18=18,所以c≤8。在(5)式中,顺次充c=5,6,7,8即得:当c=5,1n+1=14-15=120=119+1,n=19;当c=6,1n+1=14-16=112=111+1,n=11;当c=7,1n+1=14-17=328,n无奇数解;当c=8,1n+1=14-18=18=17+1,n=7。

至此,我们求出了全部7组解答,为明了起见,将它们列表如下:这个问题可以逐步推广到老人有更多的儿子的情形中去。即我们可以编出这样的问题:老人有n头牛,m个儿子,他将n头牛分给m个儿子,m个儿子分别得全部牛的1a1,1a2,…1am。其中n,a1,a2,…am满足等式:1a1+1a2+…1am=nn+1(6)

方程(6)永远有正整数解。

例如,对于3个儿子的情形,我们已有

1a+1b+1c=nn+1(7)

设k-1是n+1的一个因数,并记k+1(n+1)k=d,(n+1)k-1=n′,则(1)式可化为1a+1b+1c+1d=n′n′+1(8)

就推广到了4个儿子的情形。老人有n′头牛,4个儿子分别得全部牛的1a,1b,1c和1d。

根据这个原理,我们可以从老人只有一个儿子出发,逐步推广到老人有若干个儿子的情况中去。

因为a只能等于2,当老人只有一个儿子时,只有一种情况:1a=12。因为2有因数1和2,我们可分别取k=2和k=3,于是取k=2,1a=1×22×2=24=34-14,或12+14=34;取k=3,1a=1×32×3=36=56-13,或12+13=56。

所以老人有2个儿子时有两种情况:

老头有3头牛,两个儿子分别得12和14;老头有5头牛,两个儿子分别得12和13;当老人有3个儿子的时候,因为1a+1b=nn+1中,n+1可以为4或6,4有3个因数1,2,4,6有4个因数1,2,3,6。所以就有7种可能的情况。