標籤:

怎樣證明0.9循環(0.999999...) = 1?

0.999...後面表示無限循環的9

不想開新問題,所以在這裡補充一些疑問:
如果說0.999999...和1在數值上是嚴格相等的,那麼兩者真正的區別是什麼?
是否可以認為0.999999...和1的相等需要建立在一些隱含的條件的基礎之上?
也就是說,0.999999...和1是否並不總是相等?
其中在初等數學階段,是否可以認為由於保證0.999999...和1相等的隱含條件並不存在,因此學生們的懷疑實際上是合理的?


@申力立 的證明存在錯誤,錯誤在於顯然地認為0.99cdots 9 (n	ext{個}9) <0.999cdotsleq 1成立,他的理由是從高到低依次比較每一位數字的大小,但這並不是顯然的,這一性質是在已經定義好了0.99cdots 9 (n	ext{個}9)0.999cdots之後才有的。

完整地解釋實數的十進位實數(實數的十進位表示)是什麼,並不像你可能想像的那麼自然。為什麼00423423是同一個實數,而32400324不是同一個數?為什麼123.444cdots是實數,而cdots444.321不是實數?以及為什麼當我們在作加法或乘法時必須關注小數點的位置?為什麼0.999cdots1是同一個實數?最小的正實數是是什麼,是否是0.00cdots01

0.999cdots=1簡單地說就是實數的十進位表示唯一性不成立,所有的實數,當它是有限小數時(從小數點後某位開始全是零的數),它有兩種十進位表示,當它不能表示成有限小數時,它只有一種十進位表示。
1僅有兩種十進位表示,即1.000cdots0.999cdots1.000cdots表示的是Cauchy序列
1.0,quad 1.00,quad 1.000,quad cdots
的極限,很明顯它的極限為10.999cdots表示的是Cauchy序列
0.9,quad 0.99,quad 0.999,quad cdots
的極限,這個序列的極限也是是1
這裡我推薦《陶哲軒實分析 》一書,tao在附錄B中詳細地解釋了這個問題。

下面來嚴格地處理實數,從有理數來構造實數有兩種方法

  • Dedekind分割
  • Cauchy序列

一、實數的構造
這裡採用Cauchy序列的方法來從有理數構造實數,設mathcal{C}表示所有有理數的Cauchy序列的集合,那麼我們要構造的實數mathbf{R}就是mathcal{C}除以一個等價關係的商集:
mathbf{R}:=mathcal{C}/sim
這個等價關係是(a_n)_{n=1}^inftysim (b_n)_{n=1}^infty當且僅當對每個有理數varepsilon>0,存在N使得對一切ngeq N都有|a_n-b_n|leq varepsilon。當然這裡認為有理數已經定義好了,你可能會問,有理數是如何定義的?這裡簡單的回顧一下各種「數」的定義:首先自然數mathbf{N}是最基礎的,它是採用Peano公理和集合論中的ZF公理來定義的,整數mathbf{Z}mathbf{N}的加法完備化,有理數mathbf{Q}mathbf{Z}的乘法完備化,我們要構造的實數mathbf{R}mathbf{Q}的度量完備化。

構造實數首先需要Cauchy序列的概念。
定義. (Cauchy序列)一個有理數序列(a_n)_{n=0}^{infty}叫做Cauchy序列,當且僅當對每個有理數varepsilon  >0,存在Ngeq 0使得對一切j,kgeq N|a_j-a_k|leq varepsilon
比如a_n:=1/n,即1,1/2 ,1/3,cdots是有理數的Cauchy序列

定義.(等價的序列) 兩個序列(a_n)_{n=1}^{infty}(b_n)_{n=1}^{infty}等價的當且僅當對每個有理數varepsilon >0,存在Ngeq 0使得|a_n-b_n|leq varepsilon 對一切ngeq N成立。

實數就是所有Cauchy序列的集合mathcal{C}除以這個等價關係的商集。
定義. (實數)形如mathrm{LIM}_{n
ightarrow infty}a_n的對象叫做實數,其中(a_n)_{n=1}^{infty}是有理數的一個Cauchy序列。兩個實數mathrm{LIM}_{n
ightarrow infty}a_nmathrm{LIM}_{n
ightarrow infty}b_n叫做相等的當且僅當(a_n)_{n=1}^{infty}(b_n)_{n=1}^{infty}是等價的Cauchy序列。我們把mathrm{LIM}_{n
ightarrow infty}a_n叫作 (a_n)_{n=1}^{infty}形式極限
注. 符號mathrm{LIM}_{n	oinfty} a_n的集合論解釋是,它是Cauchy序列(a_n)_{n=1}^{infty}在這個等價關係下的等價類:
mathrm{LIM}_{n	oinfty} a_n:={(b_n)_{n=1}^infty:(b_n)_{n=1}^inftysim(a_n)_{n=1}^infty}
但這種解釋對於我們如何處理實數並沒有什麼幫助。

後面我們將定義真正的極限,並且證明一個Cauchy序列的形式極限與此序列的極限是相同的。之所以定義形式極限是為了避免循環論證:定義實數需要極限的概念,而極限的概念只有當我們定義了實數之後方能適當地定義。至此,實數就定義好了。

二、實數的十進位表示
前面的實數的構造我們沒有用到十進位,因為十進系統本身在數學中不是本質的。十進位系統對於計算很方便,而且由於一千多年的使用,我們從小就習慣於這個系統,但在數學史上,它的確是相等較為近代的發明。但為了處理0.999cdots 之類的數,我們需要實數的十進位表示。

定義. (digit)一個digit是0,1,2,cdots,9這十個符號之一。我們把這些digit與自然數依下述公式等同起來
0:=01:=0++2:=1++cdots9:=8++
我們還定義數字拾為:	ext{拾}:=9++(我們還不能使用十進位符號10來表示拾,因為那要預先知道十進位,從而導致邏輯循環)

定義. (十進位正整數) 一個十進位正整數是一個digit串a_na_{n-1}cdots a_0,其中ngeq 0是自然數,並且第一個digit a_n不是零。我們用公式
a_na_{n-1}cdots a_0:=sum_{i=0}^{n}{a_i	imes} 	ext{拾}^i
使每個十進位正整數與正整數相等。
比如1024是十進位正整數數,而0123不是,0也不是。根據定義
10=1	imes	ext{拾}^1+0	imes	ext{拾}^0=	ext{拾}
另外,一個單元的十進位整數恰好等於那個digit本身,比如十進位數3恰好等於
3=3	imes	ext{拾}^0=3

正整數的十進位表示是存在和唯一的,因為有下面定理:
定理. (正整數的十進位表示是存在和唯一的) 每個正整數m都恰等於一個十進位正整數。
這個定理不難證明,主要用到了自然數的帶余除法。一旦有了正整數的十進位表示,當然可以加一個負號(-)以用於負整數的十進位表示,最後讓0也是十進位數,那麼就給出了一切整數的十進位表示,由於拾=10,通常我們用10代替拾。

定義. (有限小數) 一個實數x叫作有限小數,如果對於兩個整數m,nx=n/10^m
很明顯,有限小數是有理數,但有理數不一定是有限小數,比如1/3

定義. (十進位有限小數) 一個十進位有限小數是一個digit的串連同一個小數點,書寫成
pm a_ncdots a_0.a_{-1}a_{-2}cdots a_{-m}
其中,小數點左邊是有限的,小數點右邊也是有限的,其中pm +或則-,而a_ncdots a_0是一個十進位自然數(即或為十進位正整數,或為0)。這個十進位數等於有限小數
pm a_ncdots a_0.a_{-1}a_{-2}cdots a_m:=(pm 1)	imessum_{i=-m}^{n}{a_i	imes 10^i}

模仿上面定理的證明,可以得到一個類似的定理:
定理. (有限小數的十進位表示是存在和唯一的) 每個有限小數x都恰等於一個十進位有限小數。

最後來定義十進位實數:
定義.(十進位實數) 一個十進位實數是一個digit的序列連同一個小數點,書寫成
pm a_ncdots a_0.a_{-1}a_{-2}cdots ,
其中,小數點左邊是有限的,但小數點右邊是無限的,其中pm +或則-,而a_n...a_0是一個十進位自然數(即或為十進位正整數,或為0)。這個十進位數等於實數
pm a_ncdots a_0.a_{-1}a_{-2}cdots :=(pm 1)	imessum_{i=-infty}^{n}{a_i	imes 10^i}
這個級數總是絕對收斂的,因為它是有界的,根據十進位實數和無限級數的定義,pm a_ncdots a_0.a_{-1}a_{-2}cdots 表示的是有理數的Cauchy序列
pm a_n00cdots 0,quad cdots, quad pm a_ncdots a_0,quad pm a_ncdots a_0.a_{-1},quad cdots
的極限。比如3.1415cdots表示的是有理數序列
3,quad 3.1quad 3.14,quad 3.141,quad 3.1415,quadcdots
的極限。

但是實數的十進位有一個小小的瑕疵:一個實數可能有兩個十進位表示。我們只能有下面的定理:
定理. (十進位表示的存在性) 每個實數x都至少有一個十進位表示
x=a_ncdots a_0.a_{-1}a_{-2}a_{-3}cdots
證明主要是根據實數的阿基米德性質。

最後展示一個例子說是實數的十進位表示並不是唯一的。
命題. (十進位表示的唯一性不成立)數1有兩個不同的實數的十進位表示:1.000cdots0.999cdots
證明. 表示1=1.000cdots是明顯的,現在計算0.999cdots,根據定義,這是有理數的Cauchy序列
0.9,quad 0.99,quad  0.999,quad cdots
的極限,也就是序列(1-1/10^n)_{n=1}^{infty}的極限,很明顯它的極限是1
1只有這兩個十進位表示。事實上,所有的實數,當它是有限小數(即從小數點後某位開始全是零的數)時,它有兩種十進位表示,當它不能表示成有限小數時,它只有一種十進位表示。

參考
[1] 陶哲軒實分析
[2] The Definition of the Real Numbers
[3] http://planetmath.org/sites/default/files/texpdf/32907.pdf


前面的回答都不夠令人滿意,我來寫一個完整而清晰的解釋。

首先明確指出下面的事實:

無限循環小數 0.999... 與 1 嚴格相等。

很多網友會通過一些初等的方法來理解這個事實,下面舉出三種有代表性的初等思路:

思路一:

設 a=0.999...
則 10a=9.999...
於是 9a=10a-a=9.999...-0.999...=9,
因此 a=1.

思路二:

由於 1/3=0.333...,
所以 1=(1/3)×3=0.333...×3=0.999...

思路三:

0.999...可以看成首項為 0.9, 公比為 0.1 的等比數列
a_1=0.9,a_2=0.09,a_3=0.009,dots
的所有項之和.

根據等比數列的求和公式,
0.999dots=0.9+0.09+0.009+dots=dfrac{a_1}{1-q}=dfrac{0.9}{1-0.1}=1.

但是,需要強調的是,以上三種思路可以用來幫助你直觀理解,但你不能把它們當成「1=0.999...」的嚴格證明。原因是,「0.999...」這樣的無限小數的嚴格表示是超出了初等數學的範圍的,你不能想當然地對「0.999...」這樣的無限小數做普通的加減乘除運算,所以上面三種初等思路只能算「投機取巧」的「初等理解」,而不能叫做「嚴格證明」。

要給出 1=0.999... 這個事實的嚴格證明,我們首先需要理解從有理數構造實數的辦法,這個構造過程將使我們更加深刻地認識無理數,而不是僅僅停留在"無限不循環小數"的直觀層面上。

下面我把這個過程給出一個儘可能詳細而易於理解的解釋。

設兩個非空有理數集合 A 和 B 滿足:A∪B 為全體有理數,且對任意 a∈A 和 b∈B,都有 a&Dedekind 分割,簡稱分割,記為 A/B。

這一定義包含兩層意思:

  1. 對任何一個有理數 a,它要麼在 A 中, 要麼在 B 中,但不會同時在 A 和 B 中;
  2. A 中的每個有理數都小於 B 中的任何一個有理數。

所以,在邏輯上,有理數集的分割 A/B 可能是下列四種情況之一:

  1. A 有最大數,B 沒有最小數;
  2. A 沒有最大數,B 有最小數;
  3. A 沒有最大數,B 也沒有最小數;
  4. A 有最大數,B 也有最小數。

但實際上,第 4 種情況不可能發生。因為如果 A 有最大數 a,B 有最小數 b,根據分割的定義可知 a&a<dfrac{a+b}{2}<b,
因此 (a+b)/2 既不在 A 中, 也不在 B 中,這就與 A∪B 是全體有理數矛盾。

這樣,有理數集的分割 A/B 就歸結為下列三種情況:

  1. A 有最大數 a,B 沒有最小數。例如:
    A={x|xleq 0,x~	ext{為有理數}}, B={x|x>0,x~	ext{為有理數}}
  2. A 沒有最大數,B 有最小數 b。例如:
    A={x|x<1,x~	ext{為有理數}}, B={x|xgeq 1,x~	ext{為有理數}}
  3. A 沒有最大數,B也沒有最小數。

對第 1 種情況,我們稱分割 A/B 確定了有理數 a,例如上面給的例子就確定了有理數 0;
對第 2 種情況, 我們稱分割 A/B 確定了有理數 b,例如上面給的例子就確定了有理數 1。
而對第 3 種情況,即 A 沒有最大數,B 也沒有最小數,下面就是一個典型的例子:
A={x|xleq 0,x~	ext{為有理數}}cup{x|x>0~mbox{且}~x^2<2,x~	ext{為有理數}},
B={x|x>0~mbox{且}~x^2>2,x~	ext{為有理數}}.
此時分割 A/B 沒有確定任何有理數,即集合 A 和 B 之間存在一個"空隙",於是我們需要引入一個新的數 (即無理數) 來表示這個"空隙"。在這個例子中,表示這個"空隙"的無理數就是sqrt{2}

這樣,我們就得到了無理數的嚴格定義:

設 A/B 是有理數集的一個分割,如果 A 中沒有最大數,B 中沒有最小數,則稱分割 A/B 確定了一個無理數 c,c 大於 A 中的任何有理數,同時小於 B 中的任何有理數。

例如,在剛才的例子中,分割 A/B 所確定的無理數sqrt{2}大於 A 中的任何有理數,同時小於 B 中的任何有理數。

需要注意的是,符合上述定義的無理數 c 在分割 A/B 給定的前提下一定是唯一的否則,假設某個有理數集的分割 A/B 確定了兩個無理數 c 和 d,不妨設 c&0<dfrac{1}{n}<d-c,
則 nd-nc&>1。這說明至少有一個整數 m 滿足 nc&c<dfrac{m}{n}<d.
由於 c 大於 A 中的任何有理數,而 d 小於 B 中的任何有理數,所以有理數dfrac{m}{n}既不在 A 中,也不在 B 中,這就與 A∪B 是全體有理數矛盾。

從而我們就可以得到實數的嚴格定義:

由全體有理數,以及有理數的分割所確定的全體無理數,構成的集合成為實數集。

跟有理數的分割類似,我們可以定義出實數的分割

設兩個非空實數集合 A 和 B 滿足:A∪B 為全體實數, 且對任意 a∈A 和 b∈B,都有 a&分割,同樣記為 A/B。

實數集和有理數集的一個本質區別是:實數集是完備的。這可以用下面的 Dedekind 分割定理來表示:

設 A/B 是實數集的一個分割,則或者 A 有最大數,或者 B 有最小數。

這個定理說明,實數集的分割不存在有理數集的分割的第 3 種情況,即 A 沒有最大數、B 也沒有最小數的情況。

換句話說,實數集中沒有"空隙"數軸上的任何一個點都可以用某個實數唯一精確表示。

這樣,我們得到了以下結論:

  1. 每個有理數集的分割確定唯一一個實數;
  2. 兩個相同的有理數集的分割所確定的實數一定是相同的;
  3. 如果兩個實數不相等,那麼確定它們的分割一定是不同的。

在有了上面的準備之後,我們就可以給出「1=0.999...」的嚴格證明了。

1=0.999...的嚴格證明:

設 t=0.999...,作兩個有理數集的分割
A={x|x<t,x~	ext{為有理數}}, B={x|xgeq t,x~	ext{為有理數}},
C={x|x<1,x~	ext{為有理數}}, D={x|xgeq 1,x~	ext{為有理數}}.
根據前面的討論,分割 A/B 確定了實數 t=0.999... (我們暫時不知道 t=0.999...是有理數還是無理數),分割 C/D 確定了有理數 1。

為證明 t=1,我們只需要證明這兩個分割是相同的,即證明 A=C。

若有理數 x∈A,則顯然有 x&<1,於是 x∈C。這說明 Asubseteq C。下面只需證明Asupseteq C

若有理數 x∈C,則 x&<1。不妨設 x&>0。根據有理數的定義,我們可以把 x 用分數的形式表示為
x=dfrac{p}{q},~(p,q~mbox{為正整數}).
既然0&1-dfrac{p}{q}geqdfrac{1}{q}>0
可知存在正整數 n 使得
dfrac{1}{q}>dfrac{1}{10^n}>0.
於是
x=dfrac{p}{q}leq 1-dfrac{1}{q}<1-dfrac{1}{10^n}=0.underbrace{99dots9}_{n~	ext{個}~9}<t.
既然 x&

綜上所述,我們就得到了 A=C,從而 A/B 和 C/D 是兩個相同的分割,因此 0.999...=t=1。


兩者沒有區別,只是記號的區別,類似於1和3/3的區別,只是裡面涉及到極限所以複雜了。記住,1/3也好,0.3333...也好都只是記號,它指向什麼才是關鍵。


受其它答案影響的更新:


我這裡給出一個從皮亞諾公理出發構造實數以及實數的十進位表示的摘要,同時我也說明實數域獨立於進位,並應用於問題所要求的比較。
1,由皮亞諾公理給出自然數集。
2,為了方便計數,引入進位制,比如兩隻手數數是二進位,十個手指數數是十進位,再加上十個腳趾頭數數是20進位。值得注意的是:不管哪種進位,自然數集還是一樣的自然數集。自然數上面的進位只是為了方便而制定的一個規定。我們暫且使用十進位。
3,在自然數集上面定義序結構和四則運算並證明相關性質。
4,為了使減法滿足封閉性,由自然數集推廣到整數環。並推廣序結構和四則運算(限制在小的集合上的序結構和代數結構仍然恰好是原來定義的序結構和代數結構)。
5,為了使除法滿足封閉性,由整數環推廣到有理數域。並推廣序結構和四則運算,證明我們定義的這些運算使有理數域構成一個阿基米德域,即對任意非零有理數a、b,存在n,使得an&>b。
6,利用戴德金分割或者柯西序列,由有理數域推廣到實數域,此處的目的是為了是度量(拓撲)完備化。推廣序結構和四則運算到實數域上,仍然可以證明實數域是一個阿基米德域
7,目前我們只在整數集上有十進位表示。根據實數域的完備性將十進位推廣到整個實數域上,也就是我們熟悉的十進位數軸。推廣的方法在數學上很重要,所以我稍微詳細一點:首先數軸被相鄰的整數分段,我們主要關注閉區間[0,1]。給定一個在這個區間的實數,將這個閉區間均勻分成十段閉區間,因為實數域是全序集,這個點至少落在其中一段上(最多兩段),將此段再十等分,......,再十等分,直至無窮,這個過程其實也是求極限的過程。於是我們可以得到這個實數的十進位表示,它可能並不唯一。
8,比較大小。同時滿足大於或等於和小於或等於即為相等。事實上,實數集的性質允許你用很多方法說明這兩個數的相等性。
9,實數域有不同的表示方法(表示不同但是作為域或集合沒有變!!),常見的有二進位,十進位,分別對應7中的二分法,十分法。更有趣的是亂進位,即你完全可以先用二進位,對區間二等分,再用三進位對每個小區間三等分,再用四進位對每個區間四等分,總之,看你的愛好了。
10,我們可以仔細看看實數域上的數學結構:序結構允許我們比較大小,四則運算帶來代數結構,開閉區間構成拓撲結構,這三大結構正是布爾巴基所提出的數學研究的主要結構。不管使用什麼進位,實數集的這三大結構都保持不變。實數域就是一個帶有全序性質和代數運算的完備拓撲空間。

再次更新於2014-5-14:
此時贊同數為24,按票數排序位於6票答案和4票答案之間。即此時點擊反對的人數有20人左右。與此同時,評論數沒有任何增加。再次請求點擊反對+沒有幫助的人留言告訴我理由。

寫在前面的話(更新於2014-4-22):

自從寫出這個答案後很久沒有回來看,今日無意中發現此答案居然被踩到絕大多數無贊同短答案之後(就差被摺疊了),相信這個答案應該是被很多知友點了反對意見。
我可以理解有人看不懂我的答案(雖然我認為我的邏輯很清楚也沒有陷入技術性的證明,有基本數學素養和耐心的知友應該有能力看懂),可是我不能忍受我花了很長時間思考整理並寫下來的答案這麼被人忽視甚至貶低。
我的決定是:歡迎看到這個答案的知友拿這個答案與其它答案進行比較。如果你還是選擇點擊反對+沒有幫助,請麻煩留言告訴我理由。謝謝!

以下為正文:
我覺得目前的所有答案都沒有說到點子上。有一些答案已經隱含了我想要說的,但是沒有明確的表達出來。
問題的關鍵在於:題主已經認同0.999999... 是一個確定的實數,需要的只是比較這個實數和另一個實數1到底哪個更大?承認這點,證明0.999999... = 1就有很多方法了。但是所有的證明,包括其它答案里出現的證明,都用到了實數集廣為人知的一些性質。
我這裡給出一個我覺得最自然的證明,想法如下:
同時證明0.999999... geq 1和0.999999... leq 1。然後自然而然就能根據邏輯得到0.999999... = 1。

0.999999... leq 1是因為實數集是一個全序集,然後比較任何兩個實數大小每個人都應該會吧?

要證明0.999999... geq 1稍微有一點技巧。用反證法:假設不然,則0.999999... &<1,這個時候我們可以用實數集上面的減法,令a=1-0.999999... &>0(根據我們的假設)。認同0.999999... 是一個確定的實數,則a也是一個確定的大於0的實數。對於任何一個確定的實數a來說,我斷言存在n,使得1/10^{n} &&命題得證。

看到上面的證明,相信有些知友開始疑惑:為什麼0.999999... 是一個確定的實數?
一個直觀的回答當然是:所有實數都可以由無限小數表示(包括無限不循環),即......abcde.fghijk.......(所有字母皆為數字0-9,小數點前是整數部分,後面為小數部分)。根據這個描述,實數集的全序性質和加減乘除運算都是小學數學已經學過的內容。

作為數學專業出身,我對這個答案還是不滿意,以下開始為比較嚴謹的數學科普,講述如何從1開始得到所有實數的過程。
老子:「道生,一生二,二生三,三生萬物。」
皮亞諾沒有看過老子老先生這句話吧?有興趣的知友可以去考證下。簡單來說,因為某個神奇的東西,老子稱這個東西為道,這個世界有了一,於是就有了二,二是什麼?皮亞諾說二就是一後面那位,本來二是沒有資格有名字的(原名就是一加一),數學家為了偷懶於是把一後面那位簡稱為二。二後面那位簡稱為三(原名一加一加一),三後面的簡稱為四,這個過程進行下去就得到了自然數集(請注意此處我沒有嚴格的給出皮亞諾公理的所有條件,見本答案最後一段)。相信這個解釋也能順便回答另一個問題:小時候學0不是自然數,後來又說是自然數,它是不是自然數的意義是什麼?有了自然數集,我們就能夠用嚴格的公理來定義自然數集合上面的四則運算。加n就是對這個由1到2的過程進行n次,減法是加法的逆,乘以n是自己對自己累計加上n次,除法是乘法的逆。
這些廣為人知的結果實際上是定理:自然數的加法和乘法滿足交換律和結合律。(直觀上當然是顯然的,但數學需要一些邏輯推導過程,本質上只是皮亞諾公理的循環使用,評論中請不要告訴我這些東西是不證自明的)
此外還有關於自然數集的很多其它性質這裡不再贅述。

關於自然數集我想補充兩件事。

一個就是在我國廣為人知的哥德巴赫猜想,陳景潤先生證明了「1+2」,很多熱心數學的朋友總是會問我:「1+1」為什麼比「1+2」還要難呢?給跪了,「1+1」不是自然數系統裡面的1+1,而是一個關於自然數中最特別的數——素數的問題。因為乘法的存在,素數有了特別的意義。
「1+1」:任何一個大於等於6的偶數都可以寫成一個素數和另一個素數的和。
「1+2」:任何一個大於等於6的偶數都可以寫成一個素數和兩個素數乘積的和。

另外一個例子是一個在數學界流傳的笑話。
上世紀五六十年代,布爾巴基在法國進行數學教育改革,力圖推行嚴格的公理化的數學。某日一教育相關人員前往某小學視察,期間考察起小學生的算術水平,問了一個類似以下的問題:1加2等於多少?答曰:2加1。此人當然不滿,以為這個學生在偷奸耍滑,重複問題:到底等於多少?再答曰:當然是2加1,難道你不知道加法滿足交換律???

如何從自然數到整數?
因為減法。-1、-2等等也是數學家為了偷懶給的簡稱。
0從何而來?我沒有去考察數學史,但是1和-1之間的距離隔了兩步難道不會讓你覺得整數集沒有美感??這裡必須要指出,數學家也是愛美的。所以中間加上個0就構成了整數集。

如何從整數到有理數?
因為乘法和除法。數學家希望ax=b對任何整數a,b都有解。
定理:對於整數和有理數,加法和乘法滿足交換律和結合律,並且是對自然數上四則運算的推廣。整數和有理數是全序集。


如何從有理數集到實數集?
中間經歷了漫長的歷程。從畢達哥拉斯學派發現非有理數的代數數開始,數學家猜測:所有整係數多項式方程的根(所有代數數)是否構成了實數集?直到約200年前,數學家發現自然對數e和圓周率pi 都不是代數數。之後柯西戴德金等數學家終於完整定義實數集並給出實數集上各種性質的證明。不久之後,康托更發現有理數和代數數都是可數集,而實數集是不可數集。康托的結論說明,無理數和超越數的數量遠遠超過有理數的數量,並且根本就不是在一個數量級上。

關於從有理數集過渡到實數集的具體步驟,可見@申力立的答案。
大概想法如下:首先定義實數集為有理數的分割構成的集合。然後不難發現集合中的一部分元素對應的正好是所有有理數,剩下的則為無理數。然後根據有理數集合上面的四則運算定義實數集上面的四則運算並證明相應的性質。給出實數集的直觀描述和這個集合上的全序排序。
定理:對於實數集,加法和乘法滿足交換律和結合律,並且是對有理數上四則運算的推廣。實數集是全序集。
實數集一個有趣的算術性質是,對任何正實數a,b存在正整數n,使得an&>b。我在斷言「存在n,使得1/10^{n} &至此,老子關於實數集的預言得以實現。而一個具有良好性質的實數集已經可以幫助我們回答題主的問題。

有興趣的知友可以看看皮亞諾公理:
(1)1是一個自然數;
(2)每個自然數都有一個後繼者;
(3)1不是任何自然數的後繼者;
(4)後繼相同的自然數相等;
(5)當S含1及S中每個數的後繼時,S含有全部自然數。


所有用四則運算來處理的都是扯淡

請參考 陶哲軒是分析 附錄2


為什麼0.777……=7/9你們就沒有疑問,0.9999……=9/9你們就有疑問?(這是一個把循環小數轉化成分數的trick)

站在小學生對於循環小數的理解水平,只要這樣運算即可:
1/1=1
1/1=0.9……0.1
1/1=0.99……0.01
繼續下去就會發現循環節只有一位,就是9。

站在一個大學生的理解水平,可以發現循環小數的描述是不精確的,很容易想到用一個極限來定義它。注意用的是一個極限本身定義它。接下來它等於啥只需要算一個簡單的極限即可。

說到底,這個問題核心是循環小數的定義問題,只要抓住一個定義不放,總能得到結果的。
另外這個問題其實沒有太多牽扯到實數如何如何,都是在有理數里打轉轉。就算沒有定義實數結果也是一樣的。


wiki上有相當棒的描述 http://zh.wikipedia.org/zh-cn/0.999%E2%80%A6
果殼上也有過一些科普向的例子 http://www.guokr.com/article/19218/

但M67這裡有個我最喜歡的證明,非常漂亮 http://www.matrix67.com/blog/archives/1301

如果0.999…和1之間不能插入其他的數,那麼他們二者相等


老見到有人提這種問題,OK,我也回答一下吧。

首先,要有一點前提共識,0.99999...只是一個記法,其實表示的是 1-1/10^n,當 n 趨向於無窮時的極限是吧?要連這個都不承認,我無話可說。

有了這個前提,那無非就是要證明 1-1/10^n 在 n 趨向無窮的時候,極限是1。這個證明就簡單了,用 ε δ 語言證明一下就是了:

對任意 ε &> 0,我們都可以找到一個大於 log(1/ε)/log(10) 的自然數 N ,對任意 n &> N,
abs(1-1/10^n -1) = 1/10^n &< 1/10^N &< ε。

上面這段話就證明了 1-1/10^n 在 n 趨向無窮的時候,極限是1。也即證明了 0.999999....= 1。


簡單的來講就是實數具有稠密性,即兩個不相同的實數之間一定存在另一個實數。而0.999循環和1之間無法找出另一個實數,所以這兩者相等。


用四則運算證明這個結論,個人覺得有點不妥。用極限方法證明的,已經可以說得通了。
這個命題本質上利用的是實數的稠密性。即任何兩個不同的數之間一定有一個數。0.9999....與1之間不存在其它數了,因此0.99999...=1


十進位下的實數系裡0.999…=1是確定無疑的
(可以構造出兩者互不相等的數系,但這個就不是實數系了)
注意這裡的十進位不是最本質的,這個結論可以稍加修改就推廣到p進位中

我只簡述一下思路,詳細的推導過程可以參考陶哲軒寫的《Analysis》

實質上,利用有理數系構造實數系的時候,就是把實數定義為有理數的Cauchy列的極限
比如實數π可以定義為Cauchy序列:3,3.1,3.14,3.141,…的極限
(為了避免在引入實數前先定義極限,可以先利用Cauchy列的等價性構建有理數的Cauchy列的形式極限,用形式極限定義實數,有了實數後再定義真正的極限,並證明形式極限與其的等價性)
當定義完實數和極限,並證明有理數可被嵌入實數系後,1就理所當然地可以根據極限的定義被證明是Cauchy序列:0.9,0.99,0.999,…的極限
而所謂0.999…本身在十進位下,按照公認的定義,就是Cauchy序列0.9,0.99.0.999,…的極限
所以它當然等於1(Cauchy序列極限的唯一性)

實際上所有p進位下的有限小數都有類似的兩種p進位表示方法


其實就一句話:
0.99999……
=1-「無窮小量{1/10^n}的極限值」,而「無窮小量{1/10^n}的極限值」是0。
和芝諾的「阿基里斯追不上烏龜」的悖論是一個道理!

不明白這個問題的人的根本原因,是不知道「極限」這個近代數學概念的含義。所以,看到不明白的人對於其他回答還有疑問還不明白,也就毫不奇怪了。


不需要證明。。。。任何一個實數的定義都直接決定了這個事實


嚴格來講,0.999999……才是1,而不是倒過來……
或者說,0.99999……定義為1

所以並不存在題主的問題

關於數學的基本定義(如什麼是實數)是非常晦澀難懂,而且涉及的知識遠遠超出正常人理解的水平

可能因為數學危機的問題,基本定義的嚴謹程度大概是吹毛求疵的,例如為確保進位表示的唯一性,所有數字都應該用極限形式,所以0.99999……才是「真理」,而1隻是個「贗品」……

對於「數」來說,無窮小/大並無意義,例如極限運算常有的1/無窮小=無窮大之類的問題在「數」裡面毫無疑義,如果要硬掰,只能說1-無窮小=1(間接認為無窮小為0了)

硬要把無窮運算往常規運算套,就是亂套了……


別的不說了,這就是個理念,或者所謂公理,任何比1小的數比0.99999……小,任何比1大的數又都比0.99999……大,你說0.99999……等於幾?
你可以把0.99999……換成任何一種寫法,換成abc等等,只要滿足剛才那兩條,那麼都等於1。
其實0.9999……就是表示一個滿足那兩條的數,那麼它只能是1。
就是這樣,喵,sao~na~ce!


各位大神已經給出了各種證明,我就不班門弄斧了,只談談我的理解。

芝諾悖論(Zeno"s paradoxes):

「一個人從A點走到B點,要先走完路程的1/2,再走完剩下總路程的1/2,再走完剩下的1/2……」如此循環下去,永遠不能到終點。

不妨讓我們換一種描述:
「一個人從A點走到B點(1),要先走完路程的9/10(0.9),再走完剩下總路程的9/10(0.09),再走完剩下的9/10(0.009)……」如此循環下去,他會到達終點么?

回答說「不能」的童鞋都給我滾回娘胎里呆著去,一動都不許動!

芝諾將有限拆解為無限,卻又不承認這種被拆接了的無限之和歸於有限,這就是這條悖論的原因所在。

事實上,我認為人類這種有限的存在是不可能真正理解「無限」這個概念的,不僅僅是因為自身的有限性,還因為無限這個概念甚至在整個宇宙間都找不到對應的存在。

至少目前如此。


難道不是在實數的十進位定義裡面這兩個就是等價的嗎。有一類東西本來就是約定好才能繼續討論的,我們默認就是接受1的十進位展開是1.00000…和0.9999… 但我們通常為了方便約定取1.000…又是一群實數系都搞不清楚的民科就喜歡拿這種東西瞎幾把唬人,還加減乘除證明,這就是定義。你問我為什麼?吊的人定義出的東西,就是為了大家方便才推廣而被接受


0.999... = 0.111... x 9 = (1/9) x 9 = 1


說到底,問題的關鍵在於,0.99……這個符號應該表示什麼。

從十進位的角度看.
0.9……=0.9+0.09+0.009+……
但這個無窮求和到底代表什麼呢?
看起來似乎不超過1,但又與1無限接近。

為了使實數構成一個完備序域,阿基米德性是必須的。
阿基米德性就是說,兩個實數不能無限接近。(還有不少等價表述)
具體地說,就是forall epsilon >0,left| x - y<br />
ight|<epsilon  ,則x=y.

要保證0.99……對應一個實數,且不引起實數系統的矛盾,又盡量跟十進位的一般規律相協調,唯一的辦法就是認為0.99……等於1.

有沒有別的辦法呢?你也可以規定0.9……是非法表示,沒意義。
還可以把0.9……強行當作某個形式對象,但那樣的話,得到的體系可能就不是實數這個完備序域了。

實數具有良好的性質,這些都來源於完備序域的完美。
如果你把實數弄成了非完備序域,那我們不承認它,仍然需要完備序域。


前面的答案基本上把常見的構造實數系的方法都寫完了,我來寫個基於十進位表達法[2]的答案吧。其好處在於,我們只需要承認

  1. 無窮位小數的加法是有限小數加法的自然延伸
  2. 加法的消去率:a+c=b+cRightarrow a=b

就可以得到想要的結果。

===============術語版================
考慮所有的形如dots a_na_{n-1}dots a_0.a_{-1}dots這樣的帶小數點的序列(a_iin{0,dots,9},存在n>0使得對於所有i>n都有a_i=0)組成的交換含幺半群M,加法按照一般十進位加法的規則(有一點技術上的困難,參考[1]),考慮其Grothendieck groupN,下面我們證明 0.9999...和1在典範映射f:M	o N下的像是相同的:

0.99dots+0.99dots=1.99dots
=1.00dots+0.99dots
Rightarrow f(0.99dots)+f(0.99dots)=f(0.99dots)+f(1.00dots)
Rightarrow f(0.99dots)=f(1.00dots)


[1] http://arxiv.org/pdf/1101.1800.pdf
[2] Construction of the real numbers
===============全年齡版=============
首先構造無窮位小數的加法:

對於兩個無窮位小數dots a_na_{n-1}dots a_0.a_{-1}dotsdots b_nb_{n-1}dots b_0.b_{-1}dots的加法,我們首先考慮截取小數點m位後兩個數之和(注意,對於有限位小數加法應當如何進行我們是清楚的):
dots a_na_{n-1}dots a_0.a_{-1}dots a_{-m}+dots b_nb_{n-1}dots b_0.b_{-1}dots b{-m}=dots c_{m_{n}}c_{m_{n-1}}dots c_{m_0}.c_{m_{-1}}dots c_{m_{-m}}
假如對於任意的m,存在nc_{-m}使得c_{n_{-m}}=c_{n+1_{-m}}=c_{n+2_{-m}}=dots=c_{-m},我們稱這兩個無窮位小數的加法是穩定的,兩者之和定義為dots c_nc_{n-1}dots c_0.c_{-1}dots

我們舉個例子來看:加入我們要把0.9999...和0.9999...加起來,我們先考慮截取有效位小數以後這兩個數的和:
0.9+0.9=1.8
0.99+0.99=1.98
0.999+0.999=1.998
.....
對於小數點後的任意一位,在取足夠多位的小數之後,總是會穩定為9,因此:
0.999...+0.999...=1.999...

同樣地:
1+0.999...=1.999...

根據消去率,0.999...=1


推薦閱讀:

數學的本質是什麼?
如何讓五個功勞不同的人分一塊蛋糕,使所有人都覺得公平?
二次型的意義是什麼?有什麼應用?
最大似然估計和最小二乘法怎麼理解?
把一張紙捏成一個球,球的大小和紙的大小有什麼關係?

TAG:數學 |