为什么不能除以零?
全世界有3.14 %?的人已經關注了
數據與算法之美
如果你問蘋果手機上的Siri,“零除以零等于多少”,它會顯示:
但是,英文版的Siri還會用語音說這一段話:
“假如你有0塊餅干,要分給0個朋友,每個人能分到幾塊?你看,這個問題沒有任何意義吧?甜餅怪會難過,因為沒有餅干吃,而你也會難過,因為你一個朋友都沒有?!?/span>
(中文版也會,但言辭就沒那么傷人了……)
拋開這個傷人的回答不論(有朋友誰特么會跟你聊天啊喂!),除以零確實是個困擾很多人的問題。
十除以二等于五,六除以三等于二,一除以零是多少?小學數學就會告訴你,答案是不能除。但是為什么?零也是個數字,它到底哪里特殊了?
?小學篇?
小學算術里,這個問題很簡單。那時我們把除法定義成“把一個東西分成幾份”,分成一二三四五六七份都很容易想象,但是你要怎么把10個餅干分給0個人呢?想象不出來嘛!所以不能除。
敏銳的同學可能會想到,要是0個餅干分給0個人的話,本來無一物,好像就沒關系了。但既然無物也無人,每個人分得多少都是可能的呀,根本無法給出一個單一確定的數值。
這結論沒錯,但這都是憑直覺而得到的東西。你想象不出來,不一定意味著它沒有。遠古時代的數學是建立在直覺上的,買菜是夠用了,但要進一步發展,就必須要有定義和證明——所以,我們上了中學。
?初中篇?
現在我們開始接觸最最基本的代數學——也就是解方程。我們發現,除法和乘法互為逆運算,所以問
1 / 0 = ?
就等于是解方程
0 * x = 1
好了,按照定義,0乘以任何數都是0,不可能等于1,所以滿足x的數字不存在,所以不能除。
同樣,如果問
0 / 0 = ?
就等于是解方程
0 * x = 0
同理,任何數字都可以滿足x,所以也不能除——無法確定一個單一的答案。
?高中篇?
等到接觸了基本的形式邏輯,我們又會發現另一種證明方式:反證法。
一堆真的表述,不能推出一個假的表述,所以如果我們用“能夠正常地除以零”加上別的一堆真表述,最后推出假的來,那只能說明“除以零”這件事情不成立了。
所以,已知
0 * 1 = 0 ?
0 * 2 = 0 ?
推出
?0 * 1 = 0 * 2
兩邊同時除以零,得到
?( 0 / 0 ) * 1 = ( 0 / 0 ) * 2
化簡得到 1 = 2。這顯然是錯的啦。
那么,問題解決了吧!其實還沒有。想想另一個問題:-1的平方根是多少?
你可能會說,-1不能開平方根,因為所有數的平方都是非負的。但是這說的是實數,我要是增加一個定義呢?定義i^2=-1,這就創造出了虛數,于是-1也能開平方根了。
那么,為何不能定義一個“新”的數,讓 1 / 0 也等于它,并為這個數設立一套運算法則呢?這就得去大學里回答了。
?大一篇?
剛學微積分課程就會立刻接觸到∞這個符號。咦,這不就是“無限”嘛。我們都學了極限的概念了,那么我令b趨向于0,然后把a/b的極限定義為無窮,不行嗎?
這就立刻遇到一個問題,它的左極限和右極限不一樣啊。b是從負的那頭靠近0,還是正的那頭?這一個是越來越負,一個是越來越正,碰不到一起去。這樣的極限是沒法定義的。
因此,微積分課程里會反復說,雖然用到了∞這個符號,但是這只是代表一個趨勢,絕對不是一個真正的數,不可參與運算。
?大二篇?
那么吸取教訓,我不用現成符號了,我直接定義 ?1 / 0 ?= w,w是個“無限大”的數,不碰什么極限,你總沒話說了吧!
然而,定義不是說來就來的,你雖然可以隨便定義東西,但定義完了如果和現有的其他系統矛盾,那就不能用,或者很不好用。
而我們面對w立刻就遇到了問題。首先,w要怎么放入基本的加減乘除體系里?1 + w等于多少?w - w等于多少?如果你造了一個數,卻連加減乘除都不能做,那就不是很有用對吧。
比如直覺上,1 + w 應該等于 w,它都無限了嘛! 而 w - w 則等于0,自己減自己嘛!
但這樣立刻會和加法里極其重要的“結合律”產生矛盾: 1 + ( w - w ) = 1 + 0 = 1,可是( 1 + w ) - w = w - w = 0。結合律是加法里非?;镜臇|西,為了一個w,連結合律都不要了,這成本有點大——不光是結合律本身,多少數學定理證明過程中不自覺都用了它,扔了它就都得重來,建立新體系。新體系不是不能建,但是費心費力又(暫時)無卵用,所以大家還是在老實用舊的——而舊的里面,為了保住結合律,就不能這么玩。
歡迎讀者們發揮自己的想象力,嘗試為 w 給出運算方式。但是你會發現,無論怎么規定w和別的數字之間的關系,只要你還堅持 1 / 0 = w,你就沒法讓它和你從小學習的基本數學不矛盾。還是那句話,你可以另立門戶,在w的基礎上建立起你的新數學,但它和大部分傳統數學是不相容的,而且肯定會非常不好用,所以我們用了一個不能除以零的體系是非常合理的。
?大三篇?
你可能會提出反對:有那么多的定義方式,我都試過?要是沒試過,我怎么知道不會某一天冒出來一個能夠自洽的辦法?
“新發現推翻舊結論”這種事情,在生物里可以有,化學里可以有,物理里可以有,唯獨數學里沒有。因為數學建立在邏輯上,個案有例外,邏輯沒有例外。當然我們的數學還沒有完成最終公理化,還要面對哥德爾的幽靈,但至少在這個例子里,如果w是一個真正的數,那它就違反了一些非常重要的公理,而這些公理的地位可是非常之深。解析直覺,推薦閱讀《數學思考法》
比如有一組基本的公理叫“皮亞諾公理”,其中有一條說,每一個確定的自然數都有一個確定的后繼,后繼也是自然數;另一條說,自然數 b=c,當且僅當 b 的后繼 =c 的后繼。
那w是誰的后繼呢——或者說,誰加上1能得到 w 呢?顯然所有其他的數字都已經有了自己的后繼,w 在其中沒有位置,沒有任何其他的數加上1能成為 w。那么就只能是1+w=w了,可那就直接和第二句話矛盾。而沒有皮亞諾公理,整個自然數的體系都不能成立。
這里假定w是自然數。其他情況會略微復雜一些,但無論如何,類似的事情發生在w的各種定義里。如果你想把 w 當成一個數,那就沒法和我們現有的實數兼容。所以我們在幾乎所有場合下都只能宣布,不能除以 0。
?大四以上篇?
既然我們之前說了個“幾乎”,那就是有例外的——在個別奇葩場合下,可以。
比如有一個東西叫做“復無窮”,它是擴充復平面上的一個點,真的是有定義的一個點。在這個特殊的規則下你可以寫下 1 / 0 = ∞ 這樣一個表達式。這么做的原因就說來話長了,但它不是平常意義上的運算——比如你不能把0拿回來,不能寫 1 = 0 * ∞。
另外,“無窮”二字在一些別的場合下是可以當成一個“東西”去對待的。比如當你衡量一個集合的大小的時候,它可以是無窮大的。但這就有很多種不同的無窮大了——自然數是無窮多的,有理數是無窮多的,實數也是無窮多的,可是奇數和偶數和正整數和負整數和自然數和有理數都一樣多,而實數卻比它們都多!同樣是無窮,有的無窮比別的無窮更無窮。但這就是另一個話題了,打住。學會像數學家一樣思考,推薦閱讀《數學思維導論》。
?總結篇?
所以,當我們說不能除以零的時候,理由……竟然出乎意料地充足。有許多直覺在數學里被推翻了,但是這一條沒有。我們有種種數學上的方式去證明它無法成立的原因,雖然也許聽起來不如Siri的回答那么心暖(或者心寒),但這些理性的愉悅也是一種美麗,對吧?
精品課程推薦:
選購數學科普正版讀物
嚴選“數學思維好物”
送給孩子的益智禮物? ?| ??辦公室神器
算法工程師成長閱讀? ?| ??居家高科技
理工科男女實用型禮物精選? ?
數據與算法之美
用數據解決不可能
長按掃碼關注
總結
- 上一篇: 双十一来了,揭秘菜鸟物流背后的那些算法黑
- 下一篇: 麻省理工告诉我们男女配对的真相!