南北朝时,一位印度法师把一部名为《百喻经》的书带到中国,并将它译成汉语。《百喻经》是大乘佛教宣讲佛法的经书。全书借释迦牟尼之口,讲了98个故事,绝大部分都是寓言。其中有一则题为《三重楼寓》,寓言的大意是:一位富翁看见别人有一栋漂亮的三层楼房,庄严华丽,宽敞舒适。便产生了一个念头:“我的钱财不比他少,为什么不能造一栋这样的楼房呢?”于是找来一位木匠,问他能不能建造像某人家那样的高级楼房。木匠回答他说:“那房子本来就是我造的。”富人马上说:“现在你给我也造一座楼,与那座一模一样。”
于是,木匠便规划好地皮,打好基础,从地面起一块一块地往上砌砖。富翁见木匠在地上砌砖,很不理解。便问木匠:“你这是要造什么样的房子?”木匠回答说:“造三层楼呀!”富翁又说:“我不要下面的两层楼,你先给我造最上一层楼。”木匠说:“这是不可能的。哪有不造第一层楼就能造第二层楼的呢?不造第二层楼,怎么能造第三层呢?”听了木匠的解释,富翁还是不理解,仍然固执己见,楼房终于没有造成。
我国明代文人刘元卿所撰的《贤奕编》一书中也有一则寓言,其大意是:有一位土财主家资十分富有,却世代不识字。有一年,他请了一位先生来教儿子念书。先生开始教学生认字。先生写一横教学生说,这是一字,写二横说这是二字,写三横说这是三字。富翁的儿子高兴起来,回家报告父亲说,我已经学会读书写字了,不必再麻烦先生,也节省一些薪俸。富翁大喜,便辞退了先生。
第二天,富翁要请一位姓万的亲戚来吃饭,叫儿子写一张请帖,儿子写了很久还没有写好。父亲感到奇怪,便到书房看个究竟。儿子正忙得满头大汗,埋怨说,天下这么多姓,为什么偏要姓万?我从早晨写到现在,还只画了500多横呢?
这两则寓言并没有什么联系,它们各自讽刺的对象也是十分明显的。把它们放在一起,许多人大概也不会产生更多的联想。不过,仁者见仁,智者见智,对数学家来说,把这两则寓言放在一起,就会联想到数学中一个重要的原理——数学归纳法。数学归纳法是数学中最重要最有用的方法之一,许多与自然数有关的数学定理,都是依靠数学归纳法来证明的。
什么是数学归纳法呢?让我们谈一个粗浅的比喻:过去行军打仗,指挥部每天都要发布一个“口令”,作为本军内部联系的暗号。现在有一支成单行前进的很长很长的部队,指挥员把“口令”传给走在队伍最前面的第一个人,并且规定了每一个听到了“口令”的人,都必须把“口令”准确无误地传达给紧跟在他后面的一个人。于是,“口令”将会从第一个人传给第二个,第二个人传给第三个,如此继续下去,不管这支队伍有多长,兵员有多少,最终每一个人都可得到口令。
数学归纳法与此类似,它是用于证明与自然数有关的命题的。
假定有一个与自然数n有关的命题P(n),现在要证明P(n)对所有的自然数n都成立。如果能证明:(Ⅰ)P(n)在n=1时成立(这一步称为“奠基”);(Ⅱ)如果P(n)对某一自然数k已成立,在这个前提下,一定可以推出P(n)对下一个自然数k+1也成立(这一步叫做“归纳”)。
有了这两步,就可以断定P(n)对所有的自然数都成立。
因为根据(Ⅰ),我们证明了P(n)对于n=1是成立的。于是根据(Ⅱ),在P(n)对n=1成立这一前提下,可以推出P(n)对n=2成立;再根据P(n)对n=2成立的条件,又可推出P(n)对n=3成立;以P(n)对n=3成立为前提,又可推出P(n)对n=4也成立。如此继续下去,就可推出P(n)对所有的自然数n都成立。
现在我们看一个可用数学归纳法来解的趣题。1963年,北京市中学数学竞赛有这样一道试题:有2n(n为正整数)个小球,随意把它分成若干堆,在其中任意取两堆,若甲堆的球数不大于乙堆的球数,则把甲堆的球合并到乙堆中去。这样称为一次操作。证明:在有限次操作以后,一定可以把所有的球都合并到一堆。
我们用数学归纳法来证明这个题目。
当n=1时,只有两个球。若原来只分成了一堆,则结论已经成立。若开始分成了两堆,每堆都是1个,把其中一堆的球合并到另一堆,就成为一堆了,命题的结论也成立。
假定n=k,即有2k个球时,不管把它们分成若干堆,都可以通过有限次操作使合并成一堆。
考虑n=k+1的情形。将2k+1个球任意分成若干堆后,有些堆里可能有偶数个球;有些堆里可能有奇数个球。有奇数个球的堆一定有偶数堆,否则的话,所有各堆球数的总和将是一个奇数,与总球数为2k+1的条件矛盾。把有奇数个球的堆两两配对各进行一次操作,两堆就合并成一堆而有偶数个球。
这时球分成了若干堆,每堆都是偶数个球,我们设想,这些球是可以两个、两个黏合在一起的,把黏合起来的两个球当成一个球,就可以看成是把2k个球分成了若干堆,根据归纳假定可以用有限次操作(显然,题目中规定的操作方法,对由两个球黏合起来的一个双球,操作的结果是一样的)把它们合并为一堆。这就证明了,当n=k+1时,命题的结论也成立。
根据归纳原理,命题的结论对所有的正整数n都成立。
在使用归纳法时,“奠基”和“归纳”两步都是必要的,缺一不可。否则就有可能发生错误。
上面谈到的两则寓言就是典型的例子。对于那位富翁来说,如果他能听木匠的计划一层一层地建上去,是可以建好高楼的。他的悲剧在于不肯“奠基”。至于那位少爷,他倒是做了“奠基”,即一字的写法确是一横。但他没有任何根据,就断言任何一个数字,都是由一些横组成的,并且都是比它前面的数字再多加一横。他的悲剧在于没有“归纳”。一个没有“奠基”,一个没有“归纳”,都以失败告终,留下了发人深省的笑柄。
我国著名数学家华罗庚教授在50年代曾亲自为中学生写过一本叫做《数学归纳法》的小册子,其中介绍了一个有趣的“猜帽问题”。
有一位老师,想辨别一下他的三个得意门生中哪一个更聪明一些。他事先准备好5顶完全一样的帽子,其中3顶是白色的,2顶是黑色的。试验时,他让学生先看了看这些帽子,然后要大家闭上眼睛,给每个学生戴上一顶白帽子,并且把两顶黑帽子藏起来,再让3人睁开眼睛,判断自己头上戴的是什么颜色的帽子。三个绝顶聪明的学生相互看了看,踌躇了一会儿,忽然都异口同声地说:“我戴的是白帽子!”
你能够说出他们都能猜对的道理吗?
因为黑帽子只有2顶,3人戴的帽子,不外乎下面三种情况之一:(A)白,黑,黑;(B)白,白,黑;(C)白,白,白。
对于情况(A),戴白帽子的学生马上知道自己戴的是白帽子;对于情况(B),两个戴白帽子的学生都会想到,如果我戴的是黑帽,对方一定能马上判断出自己戴的是白帽。现在,既然对方没有立即说出他戴的是白帽,可见我戴的必是白帽。对于(A)、(B)两种情况,都不可能三人都需要踌躇一会,现在既然三人都踌躇了一会,那就只能是情况(C),即每个人都能在踌躇了一会之后判断自己戴的都是白帽子。
对这个问题来说,至此已算解决。但是并不尽如人意:第一,它尚未完全揭露这一问题的本质;第二,上述解法难于推广到一般。因此,数学家建议采取一种“以退求进”的策略。先考虑“两个学生,两顶白帽和一顶黑帽”的问题。这个问题谁都会解。因为黑帽只有一顶,如果我戴的是黑帽,对方马上就能断定自己戴的是白帽。现在既然双方都踌躇了一会,可见两人戴的都是白帽。
在“两个学生,两顶白帽和一顶黑帽”的基础上,对于“三个学生,三顶白帽和两顶黑帽”的问题就不难解决了。因为如果我戴的是黑帽,对其余两人来说,就变成了“两个学生,两顶白帽和一顶黑帽”的问题。他们两人马上能说出自己戴的是白帽。由于三人都踌躇了一会,可见每个人戴的都是白帽。
利用数学归纳原理,可以把这个问题推广到一般的情形:“n+1个学生,n+1顶白帽和n顶黑帽”。对黑帽的顶数n使用数学归纳法。
当n=1时,即“两个学生,两顶白帽和一顶黑帽”的情形,根据前面的分析,都能判断出自己戴的是白帽。
假定当n=k时,即“k+1个学生,k+1顶白帽和k项黑帽”时,各人都能判断自己戴的白帽。
则当n=k+1时,只要有一个人戴的是黑帽,就变为n=k的情形,各人都能判断出自己戴的是白帽。既然大家都要踌躇一会儿,可见k+1个人戴的都是白帽。这就完成了归纳法的证明。