(這是一篇關(guān)于數(shù)學(xué)的科普文,我保證任何一個具有初中數(shù)學(xué)知識的人都能看懂,只是可能需要費一點腦筋。)
1.
若要比較一個班上男生女生的人數(shù)多少,最直接的辦法,當(dāng)然是數(shù)出男女生各自有多少人,然后比較數(shù)字即可;但也有一種間接的做法,即把男生女生一 一配對,最后哪方有剩余,就表明哪方的人多了。
這后一種方法看上去挺傻,而且引人遐想。但如果男女生各有無窮多人呢?要知道,人數(shù)為無窮多時,已無法數(shù)出各自有多少人。那這后一種方法,似乎倒成了唯一可行的方法了。
這正是19世紀(jì)的數(shù)學(xué)家康托爾所考慮的方法,他打算以這種一 一對應(yīng)的方式比較兩個無窮集合的大小。當(dāng)時沒有多少人為這個問題操心,一般的看法是:“既然已經(jīng)是無窮大了,比較兩個無窮的大小還有意義嗎?”
但康托爾卻堅信這問題是很有意義的,也正是通過他的探索,實數(shù)軸的一些驚人的性質(zhì)展現(xiàn)了出來。
先從最簡單的開始:奇數(shù)集{1,3,5,……}和偶數(shù)集{2,4,6,……},這兩個集合間顯然能建立起一 一對應(yīng):(1,2),(3,4),(5,6)……所以這兩個無窮集合是一樣大的。
那么,正整數(shù)集{1,2,3,4,……}與偶數(shù)集{2,4,6,8,……}呢?從直覺來看,偶數(shù)集是正整數(shù)集的一個部分,那么偶數(shù)集就該比正整數(shù)集小。然而,我們這里的直覺來自我們對有限集合的考察,事實上,涉及到無窮集合時,人的直覺是往往會犯錯的。
由于正整數(shù)集的每個元素乘以2后就是偶數(shù)集的相應(yīng)元素,所以兩個集合的元素間存在一 一對應(yīng)。因此,正整數(shù)集和它的子集偶數(shù)集是一樣大的。
是時候引入一些嚴(yán)格的術(shù)語了。集合中元素的個數(shù)叫做該集合的勢,兩個集合一樣大意味著它們是等勢的集合。正整數(shù)集和偶數(shù)集有相同的勢,這個勢記作
??,讀作“阿列夫零”。
一切勢為??的集合,叫做“可數(shù)集”。為什么稱其為“可數(shù)”呢?因為對于這樣的無窮集合,你可以對其中的每個元素進行編號,標(biāo)為a1,a2,a3,…an(實際上也就是建立了它和正整數(shù)集合的一 一對應(yīng))。這個無窮集合里的元素可以這樣一個個地數(shù)下去,所以該集合被稱為可數(shù)集。
偶數(shù)集是正整數(shù)集的一個子集,而兩者是等勢的。同樣的,正整數(shù)集是有理數(shù)集的一個子集,兩者是否是等勢的呢?
可以證明結(jié)論是成立的。具體過程我就不寫了,直接用網(wǎng)上找的一張圖來說明思路:

證明一個無窮集合為可數(shù)集的關(guān)鍵,在于尋找一種方法來給這集合中的每個元素編號。上圖中就是一種編號的方法。
先把所有有理數(shù)寫成分?jǐn)?shù)的形式。再按分子與分母之和的不同,把這些有理數(shù)歸到不同的類。比如1/2與2/1,分子與分母之和都為3,所以它們是同一類。1/3,2/2,3/1,分子與分母之和都為4,所以它們是另一類。這樣就可以給每個元素編號了:
a1=0
a2=1/1
a31=1/2,a32=2/1
a41=1/3,a42=2/2,a43=3/1
……
因為所有有理數(shù),都可以這樣被編號,所以有理數(shù)是可數(shù)集。
我們知道,有理數(shù)在實數(shù)軸上是處處稠密的,也就是說,在兩個有理數(shù)之間,總還存在別的有理數(shù),不管它們靠得多近。(這只需注意到,若a,b為有理數(shù),則(a+b)/2也為有理數(shù),且(a+b)/2在a和b之間。)
但整數(shù)并非處處稠密的。直覺上看,處處稠密的有理數(shù)應(yīng)該比看似更加稀疏的整數(shù)更多,然而,它們卻有相等的勢,這是實數(shù)軸上,第一個反直覺的結(jié)論。
2.
前面論證了,偶數(shù)、整數(shù)、有理數(shù),它們都是可數(shù)集,都有相同的勢??。那么,有理數(shù)作為實數(shù)的子集,實數(shù)是否也是可數(shù)集呢?
康托爾證明了,實數(shù)不是可數(shù)集。這就是他著名的“對角線證明”。有人說,不知道“對角線證明”相當(dāng)于沒有學(xué)過“實變函數(shù)”??梢娖渲匾浴_€好,這個證明本身并不難理解。
康托爾采用的是反證法(很多巧妙的證明都用的是反證法),他先假設(shè)區(qū)間(0,1)上的實數(shù)是可數(shù)的,然后構(gòu)造了一個矛盾,從而推翻了原假設(shè)。具體地講,康托爾是這么做的:
如果(0,1)上的實數(shù)是可數(shù)的,那么就存在一種給(0,1)上所有實數(shù)編號的方法,比如,在該方法下列出的所有(0,1)上的實數(shù)如下:
數(shù)1,????.34538294305……
數(shù)2,????.21248392843……
數(shù)3,????.29483213447……
數(shù)4,????.57490000000……
數(shù)5,????.78759237382……
數(shù)6,????.00000000100……
……
康托爾接下來打算構(gòu)造一個實數(shù),該實數(shù)位于(0,1)區(qū)間,卻不在上面的隊列中。于是就可以推出矛盾了。
怎么構(gòu)造呢?康托爾先取出第1個數(shù)的小數(shù)點后第1位,第2個數(shù)的小數(shù)點后第2位,第3個數(shù)的小數(shù)點后第3位,……第N個數(shù)的小數(shù)點后第N位,……然后將取出來的部分相加得到一個新的數(shù):
.314990……
再把這個新的數(shù)的小數(shù)點后每一位都加1(其實加2,加3都可以,關(guān)鍵是要產(chǎn)生不同),如果某一位是9,加1后就寫成0,不用考慮進位。這樣產(chǎn)生的最終數(shù)X為:
0.425001……
接著,康托爾聲稱,構(gòu)造出的最終數(shù)X不在上面的數(shù)列中。這是因為,X的第1位和數(shù)列中第1個數(shù)的第1位不同,所以X和第1個數(shù)不同;同樣的,X的第2位和數(shù)列中第2個數(shù)的第2位不同,所以X和第2個數(shù)不同;一般的,X的第N位和數(shù)列中第N個數(shù)的第N位不同,所以X和第N個數(shù)不同。
于是我們就證明了,X和數(shù)列中的任意一個數(shù)都不同。但最初的假設(shè)中宣稱該數(shù)列中包含了(0,1)上的所有實數(shù)。
X是實數(shù),在(0,1)上,卻不包含在該數(shù)列中。于是產(chǎn)生矛盾。這說明最早的假設(shè)“(0,1)上的實數(shù)是可數(shù)的”是錯的,所以(0,1)上的實數(shù)是不可數(shù)的。
這結(jié)論可以很方便地推廣到整個實數(shù)域,即,實數(shù)是不可數(shù)的。
證明過程中,康托爾選取數(shù)的軌跡恰如一條斜向下的對角線,所以這個證明方法被稱為“對角線證明”。
實數(shù)是不可數(shù)的,意味著實數(shù)的勢比有理數(shù)的勢更大。但具體大多少呢?
我們先考慮一個集合所擁有的子集的個數(shù)。
比如集合{0,1},它擁有空集,{0},{1},{0,1} 4 個子集。集合{0,1,2},它擁有空集,{0},{1},{2},{0,1},{0,2},{1,2},{0,1,2} 8 個子集。一般的,若一個集合含有X個元素,則它的子集個數(shù)為2^X個。同樣的,若一個無窮集合的勢為
??,則它的所有子集的勢為2^??。
而下面我們要證明,實數(shù)集的勢就為2^??。
我們先把正整數(shù)一個個寫出來,寫成一行:
1 2 3 4 5 6 7 8 9 10 11 12…………
再寫出一些(0,1)上的實數(shù)的二進制形式:
.0 0 1 1 0 0 0……
.1 0 1 0 1 0 0……
這些二進制實數(shù)可以這樣理解它的含義,若第N位為1,表明選取了正整數(shù)集中的第N個元素;如果為0,則表明沒有選取。所以,(0,1)上的二進制實數(shù),它的小數(shù)點后的每一位,都對應(yīng)著正整數(shù)集中各個相應(yīng)元素的取舍。也就是說,它恰好對應(yīng)正整數(shù)集的某個子集,即:
.0 0 1 1 0 0 0…… ? ? ? ?對應(yīng){3,4}
.1 0 1 0 1 0 0 …… ? ? ? ?對應(yīng){1,3,5}
于是,正整數(shù)的每個子集都可以對應(yīng)到某個(0,1)上的二進制實數(shù),同時每個(0,1)上的二進制實數(shù)都可以對應(yīng)到正整數(shù)的某個子集。于是,建立起了(0,1)上的實數(shù)和正整數(shù)的子集之間的一一對應(yīng)。
又因為正整數(shù)是可數(shù)集,它的勢為??,而正整數(shù)的子集的勢為2^??。所以(0,1)上的實數(shù)的勢也為2^??。
而(0,1)上的實數(shù)又可以和整個實數(shù)建立一 一對應(yīng)(對這個的證明我就不寫了),所以整個實數(shù)的勢也為2^??。
那2^??比??大多少?這個沒法直接算,因為??是個超窮數(shù)。但你可以以一個正整數(shù)為例來感受一下,比如2^35比35大多少(2^35=34 359 738 368)。
這就是實數(shù)軸第二個反直覺的地方了。我們知道在實數(shù)軸的每一個區(qū)間內(nèi),都包含著無窮多的有理數(shù)。好像有理數(shù)已經(jīng)把實數(shù)軸填滿了。然而,一旦我們把實數(shù)軸上的無理數(shù)抽走,只留下有理數(shù),這就好像把整個沙漠拿走,只留下一粒沙。
3.
人們對實數(shù)的認識還在不斷加深。1937年,艾倫·圖靈提出了“可計算數(shù)”的概念。所謂“可計算數(shù)”,是指對于某個數(shù),如果存在某個算法,通過該算法可以計算出這個數(shù)的任意位數(shù),我們就稱這個數(shù)是可計算的。比如圓周率π,它是無理數(shù),也是超越數(shù),但有算法可以計算出它的任意位數(shù),所以它是可計算的。
與“可計算數(shù)”對應(yīng)的,也就是“不可計算數(shù)”,對于“不可計算數(shù)”,就不存在某種可以將其計算到任意精度的算法。
圖靈證明了每個可計算數(shù)都與一個“圖靈機”相對應(yīng),而“圖靈機”是可數(shù)的,所以可計算數(shù)也是可數(shù)的。
也就是說,可計算數(shù),盡管包含了所有有理數(shù),無理數(shù)中的所有代數(shù)數(shù)和部分超越數(shù)(如π、e),但可計算數(shù)的勢仍然只是??。在實數(shù)軸上,可計算數(shù)與有理數(shù)一樣,仍然只是沙漠中的一粒沙。
實數(shù)軸,看上去平平無奇,似乎軸上的數(shù)字都是我們可以掌控的。但圖靈告訴我們,這條軸上的幾乎所有數(shù)字,都是無法精確計算的。這是實數(shù)軸第三個反直覺的地方。
4.
關(guān)于實數(shù)軸的這些反直覺的事實,究竟是只存在于數(shù)學(xué)觀念中的怪獸,還是現(xiàn)實世界的某種真實寫照呢?如果是后者,那么這些事實就似乎帶有這樣一種意味:我們的世界,表面看來充滿了秩序和確定性,但在這秩序和確定性的背后,卻是廣闊無邊的混亂和不確定性。
事實是否如此?只有等科學(xué)的發(fā)展給出答案了。