上回讲了数学归纳法的神奇,本回讲讲我对数学归纳法的感受 。
我最近找到一本华罗庚在 1964 年写的>一书。在这本书中,华罗庚提到他在中学学习数学归纳法时,觉得是学会了,可是后来总觉得还是差了点什么 (原话引用见“注”)。
数学归纳法在中学里我们都已学过,中学大纲上要求只要会用,或是能看懂这种证明方法就行了。数学归纳法证明步骤很简单,不复杂。一般是先验证 n=1 时命题是否正确,然后,假设 n=k 时命题正确,在此基础上去检验 n=k+1 时命题是否正确。
然而,这个看上去极其简单的证明方法,却蕴藏着极其丰富的内涵和奥妙,要想把其用到如火纯青的地步,实非易事。华罗庚在他的这本书里除了讲述对数学归纳法的感受还差了点什么外,没讲更多的感受,而是通过数学归纳法在各个方面的应用举例来讲数学归纳法。 这本书可谓是数学归纳法应用的宝典,而非是讲述了数学归纳法的深邃内涵。
说实话,数学归纳法的内涵,我在中学的时候就已领悟。当时在学数学归纳法时候,我对数学归纳法也有过疑惑,估计和华罗庚的感受一样。我给自己提出过一个问题:为什么 在数学归纳法中,要有个 n=k 的假设。我花了很长时间来思考这个问题,简直快到了走火入魔的程度。终于有一天,我眼前豁然开朗,悟出了其中的奥秘,如同是看到了那遥远的宇宙深处。
下面,我就拿出华罗庚在他的这本书中的一道应用题来指出华罗庚的错误,从而说明华罗庚当年心中对数学归纳法那点“还差了点 "的感觉到底是什么,并给出我自己对这道题的解答,作为对比。
原题是: 有两堆棋子,数目相等。两人玩耍,每人可以在一堆里任意取几颗,但不能同时在两堆里取,规定取得最后一颗棋子者获胜。求证: 后取者可以必胜。
在这道题中,最先开始取棋子者定义为先取者,随其后取棋子者定义为后取者。保证后取者必胜的方法就是后取者每次拿出和先取者一样数目的棋子,而且是和先取者在不同的棋子堆里拿取。我们要用数学归纳法来证明这个方法是正确的。
原题和华罗庚给出的解见“注”。华罗庚先验证 n=1 时,结论正确。然后假设 n≤k 时,结论正确,这里就是华罗庚所犯的错误。因为要想让他的这个假设不等式成立,华罗庚 还必须继续验证 n=2 时结论成立,否则,他的假设中就自动已包含了 n=k+1 时也是正确的结论, 然后,再用这个假设去证明 n=k+1 时结论成立,犯了逻辑错误。而且是,华罗庚在他的著作中,爱使用“不证自明”的字样,在本次的证明中,他又使用了“这样就变成了n=k+1-l 的问题”的说法。他的这些说法都不够严谨,不是数学语言。 华罗庚之所以会出现这些问题,这和他没有经过正规大学培训有着直接的联系。
我对这个题目的解如下:
设 n 为每堆里的棋子个数。
当 n=1 时,即每堆各有一枚棋子,先取者从一堆里拿出一枚棋子后,后取者这从 另一堆里取出最后一枚棋子,而获胜,所以结论成立。
当 n=2 时,即每堆各两枚棋子,先取者从一堆里拿出一枚棋子后,后取者这从另 一堆里取出一枚棋子,此时两堆里各有一枚棋子,所以结论成立,因为 n=1 时, 结论成立;
另一种情况,如果先取者从一堆里拿出两枚棋子后,后取者这从另一堆里取出最后 两枚棋子而获胜,结论仍成立。
假设当 n=k 时, L为各自所拿的棋子数 , 且有 1≤ L≤k ,结论成立,即,双方从两堆棋子中各拿出 L数棋子后,两堆里的棋子数均为 k- L ,且0≤k- L≤k-1,也就是,当0≤每堆棋子数≤k-1时,结论成立。
当 n=k+1 时,各自所拿棋子数为 M 。 且有 1≤ M≤k+1,所以有 0≤ M-1≤k。 双方各拿出 M数棋子后,两堆里的所剩棋子数均为 k+1-M=k-(M-1)。
当 M-1=0 时,即,双方各拿出一个棋子,则 k-(M-1)=k,两堆里的所剩棋子数各为 k, 根据假设,结论成立。
当 M-1>0 时,则有 1≤ M-1≤k。 于是,有 0≤ k-(M-1)≤k-1,即,0≤每堆所剩棋子数≤k-1。根据假设,对于在此区间的每堆棋子数,结论成立。所以,当n=k+1时,结论成立。
所以,无论每堆里的棋子个数有多少,后取者都可以必胜。笑到最后,才会笑得最好,这道题的证明也同时再一次地验证了这个谚语的真理性。
最后的结论:在华罗庚完成撰写这本>的时候,他心中那种对数学归纳法感受的欠缺感仍没有被填补上。
注: