3月29日,本人在《有没错?》中抄录了一道数学题:
如下推导有没错?
设x=0.999…
10x=10×0.999…=9.999…
10x-x=9.999…-0.999…
9x=9
x=1
现在,试作如下推理解答:
x=0.9,10x=9,10x-x=8.1
x=0.99,10x=9.9,10x-x=8.91
x=0.999,10x=9.99,10x-x=8.991
x=0.9999,10x=9.999,10x-x=8.9991
……
依次无限类推,可得:
x=0.999…,10x=9.999…,10x-x=8.999…9991
于是,
10x-x=9x=8.999…9991
x=8.999…9991/9=0.999…
最终,推理结果与原题目的前提完全相符,丝毫没有差异。同时,通过上述推理,即可发现,原题在推导中,由于x=0.999…乘以10之后,10x=9.999…的小数位数比原来减少了一位(尽管依然是无限的),所以,由10x-x=9.999…-0.999…这一步而得到9x=9,出错了。正确的结果如上推理所说,应该是8.999…9991。关于这点,后面还有进一步的解释。
这样,上面的推理“圆满地”纠正了原题之谬。
据说,原题目提到的“1=0.999…”是个颇为有趣的问题,它困扰人们长达几个世纪,至今仍然有人为此争论不休。你看,我们这会儿不也正在“争论”吗?不过,我想,这个问题数学界一定早已解决了!不然,在如今公布的世界数学未解难题之中,怎么没有这个问题呢?我们可能都在乱谈吧?那现在就不妨再来随谈一下。
一、无限循环小数是无穷数列
0.999…其实是一个无穷等比数列,其通式是:
x=0.999…=9×0.1+9×0.1^2+9×0.1^3+…+9×0.1^(n-1)+9×0.1^n
(1)
上式中的n是任意大的正整数,下同。
于是,
10x=9+9×0.1+9×0.1^2+9×0.1^3+…+9×0.1^(n-1)
(2)
由上可见,(1)的小数位数是n位,扩大10倍(乘以10)之后的(2),其小数位数是n-1位,比(1)永远少一位,尽管(1)和(2)的小数位数仍然都是无限的。原题推导正是在这一环节上发生了错误,它把0.999…扩大10倍之后的9.999…的小数位数想当然地认为仍然与原来一样,以致发生运算错误:10×0.999…-0.999…=9.999…-0.999=9。正确的结果应该是8.999…9991。
我们继续看下去:
(2)-(1):
10x-x=9-9×0.1^n
9x=9×(1-0.1^n)
x=1-0.1^n
即0.999…=1-0.1^n
上面的0.1^n是个“极限为0的无穷小变量”(简称“无穷小”),而无穷小是一个比任何数都小但是不等于0的量,这个无穷小也是一个趋近于0的数列,它也就不是一个确定性的数,0是它的极限。由此可知,0.1^n始终存在于上式中;当n趋于无穷大时,则0.1^n趋于0,于是得知,这个数列无限趋近于1,即1是0.999…的极限,但这并不意味着0.999…本身就是1。
须要特别强调的是,无穷小可做四则运算,尤为关键的是可以做除法(注:两个相关的无穷小量的比值就是一个函数的导数,这是微积分学理论的基础),而0是不可做除数的,即分母位0是无意义的。这也就是说,不能把无穷小0.1^n干脆等同于0。因此,对于数列函数式 x=1-0.1^n,如果拿掉这个无穷小0.1^n,则x<1,即0.999…<1。
还有,对于“1=0.999…”,有人如此证明:
1=3×1/3=3×0.333…=0.999…
因为无限循环小数是数列,是一个变量函数,它不是个确定性的数;但是数列可以无限趋近于一个数,而这个数就是这个数列的极限;因此,所谓的“无限循环小数与分数可以互换”,实质上是,化成的分数是无限循环小数的极限,而不是无限循环小数这个数列本身。
请看解释:
与前相仿,0.333…的数列通式及运算:
x=0.333…=3×0.1+3×0.1^2+3×0.1^3…+3×0.1^(n-1)+3×0.1^n
(1)
这里,n为任意大的正整数,下同。
10x=3+3×0.1+3×0.1^2+3×0.1^3…+3×0.1^(n-1)
(2)
(2)-(1):
10x-x=9x=3-3×0.1^n
x=1/3-0.1^n/3
即0.333…=1/3-0.1^n/3
上式中,0.1^n/3是个“无穷小”,始终存在于该式之中;当n趋于无穷大时,0.1^n/3趋于0,于是,可求得这个数列的极限为1/3,但1/3并非这个数列本身。所以说,0.333…永远不等于1/3。
如果把这个方程式0.333…=1/3-0.1^n/3的两边乘以3,就变成了前面所讲的原题目的问题了,即
0.999…=1-0.1^n
而关于这,前面已作解释,0.999…=1不成立。
二、无限循环小数与分数之间的关系
前面的“0.999…=1”和“1=3×1/3=3×0.333…=0.999…”两个式子涉及到无限循环与分数之间的关系问题。为了使解释简单明了,我们拿最简单的纯无限循环小数0.aaa…(a是1至9的自然数)为例,来作分析。
把纯无限循环小数0.aaa…化成分数,通常的简化方法是:只需把a作为分子,而分母则为固定数字9,即a/9,能约分的要约分。推导如下:
设x=0.aaa…
10x=a.aaa…
10x-x=a.aaa…-0.aaa…
9x=a
x=a/9
即0.aaa…=a/9
运用这一简化公式,可得:
0.111…=1/9;
0.222…=2/9;
0.333…=3/9=1/3;
……
0.888…=8/9;
0.999…=9/9=1(原题目的这个错误结论就是这么推导出来的)
那么,这个简化方法的推导究竟是否严谨呢?答案是否定的。请看分析:
我们知道,无限循环小数0.aaa…其实是个无穷数列,其通式为:
x=0.aaa…=0.1a+0.1^2a+0.1^3a…+0.1^(n-1)a+0.1^na
(1)
这里,n是任意大的正整数,下同。
10x=a+0.1a+0.1^2a+0.1^3a…+0.1^(n-1)a
(2)
(2)-(1):
10x-x=a-0.1^na
9x=a(1-0.1^n)
x=a/9(1-0.1^n)
即0.aaa…=a/9(1-0.1^n)
上式中,0.1^n是“无穷小”,当n趋于无穷大时,0.1^n趋于0,于是,求得上式的极限为
0.aaa…=a/9
这即为纯无限循环小数化成分数的“简化方法”公式。原来,这个“简化方法”是一个求极限的方法,计算得到的是无限循环小数0.aaa…的极限,而不是这个无限循环小数本身。在推导这个“简化方法”过程中,当两式相减时,干脆甩掉了它们小数点后面看似位数相同的无限小数“大尾巴”,殊不知,同时也把含有无穷小量0.1^n这条“小尾巴”当成0一起甩掉了。由于这个“简化方法”一开始就抛弃了这个“无穷小”,并且自始至终没有显示过它,结果,使得很多人不曾想到过它的存在,以致想当然地把求得的极限认定为就是无限循环小数本身的精确值了。
同理,推广可知:任何由无限循环小数化成的分数(有时是整数或有限小数)其实都是它们的极限,而不是无限循环小数本身;化成分数的过程其实是一个求极限的过程,而采用的运算方法就如这套“简化方法”,其中,始终都把“无穷小”这一项给省略掉了。
我们再举无限循环小数0.1999…为例。如果采用这个化成分数的“简化方法”,运算如下:
设x=0.1999…
10x=10×0.1999…=1.999…
(1)
100x=100×0.1999…=19.999…
(2)
(2)-(1):
90x=18
x=18/90=1/5=0.2
于是乎,问题来了:0.1999…明明是个无限循环小数,怎么竟然变成了有限小数0.2了呢?
其实,产生这一谬误的原因与前面讲过的两个例子一模一样,即在推导过程中把“无穷小”直接省略掉了,求得的0.2其实是0.1999…的极限,而非它本身的精确值。
通过对上面这套化成分数的“简化方法”的分析,我们蓦然发觉,似乎都是这套“简化方法”惹的祸。很多人由于没有彻底理解其中原理(尤其是关于“无穷小”的存在),因而对于一些数的定义概念也就产生了混乱。所以,我们应该正本清源,并且完全可以从数的定义出发,直接判定:
0.1999…既然是无限循环小数,那就不该是有限小数0.2;
0.999…既然是无限循环小数,那就不该是整数1;
0.333…既然是无限循环小数,那就不该是分数1/3;
……
你想,如果它们都是一样的,作为科学领域中最为严密的数学为什么还要把它们区别定义呢?数学家们吃饱撑了?
归纳总结前面所有之述,不难知道,之所以产生“0.999…=1”、“0.1999…=0.2”、“0.333…=1/3”等之类的谬误,原因是:
1、没有真正理解无限循环小数的含义。无限循环小数是数列,是一个变量函数,它不是个确定性的数,不能把这个数列(无限循环小数)当作数来比较的;但是数列可以无限趋近于一个数,而这个数就是这个数列的极限,所以数列的极限是一个数,就可以和其他数作比较。不要误把无限循环小数这个数列的极限当成它本身的精确值。比如,0.999…其实是个数列函数,它的极限是1,但不能说它就是1,不然,还要这个0.999…干嘛,凡是遇到0.999…时,干脆一概写成1不就得了?
2、在运算过程中,由于把无限循环小数与其极限之间始终存在的“极限为0的无穷小变量”当作0而一概去掉了,结果造成了偏差,因为“无穷小”与0是绝对不一样的数学概念啊!特别是,“无穷小”可以做除数,而0则不可以。
另有,无穷数列只是函数的一种,而极限为1的函数可以有千万种,无数个,但你能说,只要极限为1的函数就是1吗?或者说,所有极限为1的函数都是相同和相等的吗?比如,x=1+1/n与y=1-1/n两个函数,当n趋于无穷大时,它们的极限都是1,但你能以此就说x=y(即1+1/n=1-1/n)吗?显然不能吧?不然,数学的概念将会更加混乱不堪了。
另外,还有人这么证明“0.999…=1”:
因为0.999…与1之间插不进任何一个实数,所以,0.999…=1。
我们在前面已经多次说过,0.999…是个无穷数列,它是一个变量函数,不是一个确定性的数,所以说,“0.999…与1之间插不进任何一个实数”,这样的“论证”是不充分的,因为“插不进”不等于就是相同和相等。比如,上面提到过的两个函数例子,x=1+1/n与y=1-1/n,就是一个很好的说明。
然而,在前面的解释中,倒是让我们确确实实地看到,在0.999…与1之间始终插有一个“极限为0的无穷小变量0.1^n”呢!即0.999…+0.1^n=1。
说到这,顺便提一下,我没有看过现在的中小学数学教材,也不知道这些教材是怎样讲解无限循环小数与分数之间关系的,但昨天清明节,见到我老婆的外孙,他就读于当地一所重点高中,今年六月将参加高考。我问他这个问题,他说:“以前在小学里,无限循环小数化成分数,我们都把两边当作是一样的数;后来到了读中学,数学老师告诉我们,两者是有所不同的,说这个分数是个极限值,是无限循环小数的近似表达。我们心里也感觉它们永远不一样。”我认同这位中学数学老师的这一观点,也认同外孙这一心里感觉。
最后,要是你把问题拉到数学领域以外,用其他什么思想和方式来讨论关于数的性质或问题,那就变成另外一个层面上的问题了,在此无从讨论。
加载中,请稍候......