tft每日頭條

 > 科技

 > 有符号整數解析

有符号整數解析

科技 更新时间:2025-02-12 04:52:50

自然數渾然天成人間易得,但光有自然數還不足以應對紛繁複雜的日常生活,生活中有的人有錢,有的人沒錢,有的人不僅沒錢還欠錢,假定都是整錢,有錢用自然數表示,沒錢用0表示,那麼欠錢呢?欠錢用負數表示,什麼是負數,負數又從哪來呢?相對于自然數,負數并不自然,是一種新數,它對應着一種新的運算,即減法運算。基于加法我們這樣來定義減法:

若x+y=z,則x=z-y,減法是加法的逆運算,稱為加減變形公理。

注意,在定義減法時并沒有将其局限于已知的數,而是不加限制地認為它對任何可能的數都有效,包括0、∞和自然數,也包括後面要講到有理數、無理數和實數;也沒有規定說隻能大數減小數,不能小數減大數。法無禁止即是自由,這一點很重要,切不可做給數學上枷鎖的傻事,如康托爾所說,數學的本質就在于它的自由,給數學上枷鎖,其結果終究是給人類自己上枷鎖。

據此令x+n=0,則有x=0-n,當中的n可以是任何可能的數,就目前來說隻有0、∞和自然數。由于自然數和∞都大于0,可以想見0-n得到的數x肯定不同于原來所有的數,這時我們有意或無意地把0和∞忽略,将0-n記作-n,即0-n=-n,其中n為自然數,并給這樣的數取個名字叫做負數,負數就從這來,它是引入減法之後的必然産物,在所有算術運算中,減号即負号,負号即減号。有了負數,準确說是負整數,之前的自然數,放在一個更大的範圍裡,就不叫自然數,而稱為正整數。0既不屬于正整數,也不屬于負整數,正整數、負整數和0統稱為整數。這是一個已經被奉為常識的說法,小學生都懂的,但這個說法是否準确可以再讨論。

有符号整數解析(算術公理系統之)1

定義和公理是一切數學的出發點,自然也是我們思考和讨論各種數學問題時的出發點。那麼嚴格按照負數的定義來看,負數是與某數相加為0的數,或者說負數是由0減去一個已知數所得的結果,0減自然數n得到-n,同理,0減0得到-0,0減∞得到-∞,-0和-∞都嚴格遵循負數的定義而産生,是鐵闆釘釘的數。如果說對∞是不是一個數還存有疑慮,姑且不去論它,0是一個數,則毫無疑問,那麼給0加上負号,它滿足:0-0=-0,0+(-0)=0,-0=0,于是“-0”作為一個可以運算的符号,稱其為數,乃妥妥的實至名歸。

接下來把所有這些數按正負号分開排列,為了突出重點,暫不考慮∞和-∞:

0、 1、 2、 3、 …-0、-1、-2、-3、 …

這時我們還能單獨将0拎出來說整數分為正整數、負整數和0嗎?有負0存在,将它鄭重地考慮進來,帶負号肯定是歸到負整數,那麼跟它相對的正0(0寫全了應該是+0)歸到哪呢?——還用說嘛,當然歸到正整數。所以關于整數準确的說法應該是,整數分為正整數和負整數,正整數包括{0、1、2、3、…},負整數包括{-0、-1、-2、-3、…}。之前的說法無疑是完全忽略了-0的存在,加上-0=0,導緻我們在實際運算中幾乎覺察不到它的存在,有它和沒它運算結果基本不受影響,既然不受影響,那忽略不就忽略了,但要完整而深入地理解數,恰恰不能忽略它的存在。而忽略的後果又異常嚴重,是人們料想不到的。

如若對此表示搖頭,不能理解,多半是因為還沒有真正搞懂什麼是負數,不曾想過從負數的定義出發,-0也是一個正兒八經的數,盡管-0=0,但相等并不意味着兩個數必須完全一緻,一緻到是一個數,否則使用等号隻能有x=x,而不能有x=y的表述。總之在負0面前,我們應該檢讨,衆目睽睽之下藏着這麼一個鬥大的數,怎麼就沒人發現呢?

有了減法,我們對大于、小于和等于可以做進一步理解,根據等身公理,x=x0加公理,0+x=x以及減法的定義,可以得到x-x=0,那麼若x=y,則有x-y=0,即兩個數相等則它們的差為0,反之亦然,若x-y=0,則有x=y,兩個數的差為0則它們相等。仿此,1>0,那麼1-0,不能等于0,不能小于0,隻能大于0,即1-0>0,那麼,若x>y,則有x-y>0,反之亦然,若x-y>0,則有x>y,對于小于符号“<”也是這樣,若x<y,則有x-y<0;若x-y<0,則有x<y。

判斷兩個數的大小,通常使用的算術方法就是看這兩個數的差是否為0,5-3>0,說明5比3大;反之,3-5<0,說明3比5小;3-3=0,兩個3相等。那麼0與-0誰大誰小呢?因為-0的定義就是0-0,0減去0隻能是0,即-0=0。于是數的大小與算術運算找到了對應關系。

既然0-0=0,那麼∞-∞=?,這個問題有點燒腦,按照∞加公理,∞+x=∞,以及減法的定義得到,∞-∞=x,這個與由0加公理得到的x-x=0,是否相矛盾呢?一個數自己減去自己,還能不等于0嗎?一個數自己跟自己比較還能不相等嗎?回答是不矛盾,但又确實存在這樣一個數不能簡單的自己跟自己比較,比較結果為x,說明可以相等也可以不相等,這個數就是∞。

有符号整數解析(算術公理系統之)2

∞與普通數的根本區别可以這樣來理解:對于任意一個普通數a,a-a=0,并且a-a≡0,a減a等于0,并且a減a恒等于0;但對于∞來說,∞-∞=0,并且∞-∞!≡0(不恒等于符号應該用≡加斜杠/來表示,但是“!≡”方便輸入,所以先用着),∞減∞等于0,并且∞減∞不恒等于0,因為∞-∞=x,x可以是任何數。

整數是在減法基礎上對自然數的擴展,從正方向擴展到負方向,相當于把自然數整個複制一份放置到相反方向,按常識理解這會兒整數的個數應該有自然數個數的兩倍才對,但無窮無盡的自然數翻一倍到無窮無盡的整數,還是無窮個,∞×2=∞,居然沒有變化。大概到了無窮這個級别,數量的增加已經沒有意義了。其實根據∞-∞=x,說整數跟自然數一樣多,即∞-∞=0,沒問題;說整數比自然數多無窮個,即∞-∞=∞,也沒問題;甚至說整數比自然數少無窮個,即∞-∞=-∞,也對。——怎麼說都對,這不見鬼了嗎?!對于擁有無窮數量的對象,欲通過數字的大小來比較對象的多和少,已經沒什麼價值。康托爾一度也很糾結這個問題,經過苦思冥想,提出以對應的方式來重新定義無窮對象數量的大和小,由此開創了集合論和超窮數理論,他是如何做的呢?

我們知道數字被發明出來,最直接的用處是計數,通常稱為數數,幼兒識數基本上都是從數數開始。要計數,首先要明确計數對象,對誰進行計數?對周圍的人,對手指腳趾,還是籃子裡的雞蛋,這就涉及集合的概念。集合是什麼?集合所回答的問題是:“對象是哪些?”,回答這個問題旨在明确計數對象。而集合的作用相當于在我們的頭腦裡畫出一個圈,将思考或讨論所涉及的對象都放進這個圈裡,并給這個圈命名,比如A或者B,當提及這個名字的時候,我們都知道言之所指的是哪些對象。意即,集合是包含确定對象的全體,而構成集合的對象則稱為元素。集合概念的提出極大節約了人們的認知和溝通成本,它的提出者康托爾可以說居功至偉。

有了集合,如果隻考慮一個集合,不會有啥問題,當面對兩個集合時,問題就産生了,哪個集合中的元素多,哪個集合中的元素少?元素多的為大,元素少的為小,如何比較兩個集合的大小呢?我們知道,數是用來标定多少、比較大小的,如果沒有數,或者不知有數,又或者在明知有數而不用的情況下,我們又如何比較它們的大小呢?這時要用到“1對1”的方法。

據說,著名的《荷馬史詩》中記載了一個則盲人牧羊的故事:獨眼巨人波呂斐摩斯僅有的一隻眼也被奧德修斯刺瞎,成為盲眼巨人。盲眼巨人眼盲心不盲,他每天坐在山洞口照料他的羊群,早晨羊兒外出吃草,每出來一隻,他就摸索着撿起一粒石子放在身邊;傍晚羊兒返回山洞,每進去一隻,他就扔掉一粒石子,當把早晨撿起的石子扔光時,他就确信羊群中的羊全部返回了山洞。很顯然,故事中的盲眼巨人,不必知道羊群中有多少隻羊,以及他撿起的一堆石子中有多少粒石子,他隻需要将羊群中的羊與石堆中的石子“1對1”,一隻羊對應一粒石子,一隻羊對應一粒石子,對完了,結果自然明了。如果石子有剩,說明羊少了;如果羊有剩,說明可能生小羊了;如果羊和石子都沒有剩,剛好一一對應,則兩者一樣多。盲眼巨人就是在使用“1對1”的方法比較兩個集合的大小,整個過程不涉及數,所以巨人即便眼盲再加數盲,照料好羊群亦無大礙。

所謂“1對1”,就是将A、B兩個任意的集合放一起,使之處在同一時空當中,然後将A中的元素與B中的元素建立起一個對一個的映射關系。由于A中的元素無序,B中的元素也無序,那麼在A、B對應時,則不要求特定的元素對特定的元素,比如A中a1不是隻能與B中的b1相對,它也可以選擇與b2相對,一旦選定,它就不能再與B中的其他元素相對。對下來的結果,隻有三種可能:A>B,即B中的元素對完了,A中有剩餘,餘多少不考慮;A<B,即A中的元素對完了,B中有剩餘,餘多少不考慮;A=B,即A與B中的元素一一對應,都沒有剩餘。“1對1”的結果也可以粗分為兩種:一一對應和非一一對應,有時為了強調結果的一一對應,也把“1對1”方法稱為“一一對應”。

所謂計數,則是借助“1對1”的方式,将對象跟數聯系起來,在知道對象“是哪些”之後來回答對象“有多少”的問題。此時的“1對1”不再是未知對未知、無序對無序,而是未知對已知、無序對有序。其中這個已知、有序的集合便是一把标有刻度的尺子,可以用它來測量未知集合,使未知變成已知。計數就是以某個數的集合作為“1對1”的一方,來測量另一方。常用的有自然數集、有理數集、實數集。對于簡單的計數,首選自然數集N={1,2,3,…}。

現在我們用自然數集替換掉盲眼巨人手中的石子,來數一數他的羊群裡有多少隻羊。由于自然數集中的元素是有序的,1<2<3<4<5<…,那麼我們在将羊群中的羊與自然數集中的數一個對一個時,也要遵循這個次序,出第一隻羊對1、再出一隻羊對2、再出一隻羊對3、…,從山洞走出最後一隻羊時,如果對的是10,則說明羊群裡有10隻羊,計數的結果就是10。

整個計數過程,從1數到10,依次取自然數集中的元素,對應的正是自然數的生成和累加過程,即持續加1。我們可以用計算機編程語言來描述這個過程。令計數結果為r,并且r的初始值為0,每映射一次,則執行一次r=r+1(這裡的“=”是計算機編程語言中的賦值符号,意思是将右邊的值賦給左邊的變量,而不是算術中的“=”表示左右兩邊相等),将此過程展開來看:

有符号整數解析(算術公理系統之)3

很明顯,計數本質上就是将集合中的元素映射到數以及數的運算,并最終得到一個數,這個數即是該集合元素的個數,亦即集合的大小。而單純的映射呢,隻是将一個集合的元素映射到另一個集合的元素,兩個集合之間沒有本質差别:

有符号整數解析(算術公理系統之)4

将羊群映射到石子

這張圖描繪的便是盲眼巨人早上将羊群映射到一堆石子的過程,從羊群到石堆,從一個集合到另一個集合,其間絲毫沒有涉及數,所以映射的結果,盲眼巨人并不知道羊群裡有多少隻羊,或者石堆中有多少粒石子,他手裡隻是得到了一個羊群的副本,這個副本與真實的羊群相比,除了數量相等,還有一個很大的優點,羊會亂跑,石子不會,可以說聰明的盲眼巨人利用石子對羊群進行了一次抽象,将羊群簡化為了石子。

呆到傍晚羊群返回山洞,盲眼巨人需要将這時的羊群與早上羊群的副本即石堆,進行“1對1”比較,看羊有沒有亂跑。這就涉及如何比較兩個集合的大小。早上将羊映射到石子,盲眼巨人是撿石子,放出一隻羊撿一粒石子,最終得到一堆石子,現進一步将這堆石子抽象為一個集合N,将傍晚的羊群抽象為一個集合M,然後比較M和N的大小。

盲眼巨人雖然不識數,但隻要有最基本的有和無的概念,是容易做到的。他可以把M、N兩個集合放在一起,一隻手從M中取元素,另一隻手從N中取元素,一次取出一個元素,兩隻手同時取,于是兩個集合中的元素同時減少,都是一次少一個。隻要M和N中都還有元素可取,盲眼巨人就一直取下去,取了多少次他可以不管,直到出現至少有一個集合沒有元素可取為止。假如M中還有元素,N中沒有元素,即可得出M>N。

同時讓兩個集合中的元素等量減少,誰先減少到無誰就小,同時減少到無就是一樣大,這是最原始最樸素的比較兩個集合大小的方法。隻須知道有和無,就能判斷兩個集合的大小,這種方法最大限度地規避了對數的認知,确實非常高明。這種方法對我們來說有一個堪稱經典的應用,即老師上課點名:一個班50個學生,滿勤的話,剛好坐滿教室裡的50個座位,學生和座位一個對一個,如果有缺勤,老師輕輕瞄一眼有沒有空位就知道了,而不用一個同學一個同學去數,可見它的效率在特定場景中是極高的。

對于這個高明的方法,我們可以再抽象,抽象為一個算法過程,它有輸入有輸出:第一步,輸入兩個數m、n,并且m、n都是大于0的自然數;第二步,m、n分别減去1,得到新的m、n,即m=m-1、n=n-1;第三步,分别比較m、n與0的大小,如果m、n都大于0則返回執行第二步,如果m或者n等于0,則進入下一步;第四步,如果m>0,n=0,則輸出m>n;如果m=0,n>0,則輸出m<n;如果m=0,n=0,則輸出m=n。

有符号整數解析(算術公理系統之)5

不難看出這個算法的核心是m=m-1,或者寫成r=r-1,與之前的r=r+1剛好相反,前者是加法過程,後者是減法過程。如果将r=r+1稱為計數,那麼r=r-1就是逆計數。

不論計數還是逆計數,“計”的過程即是映射的過程,“計數”即是映射到數,沒有數就沒有計數,這是一個不需要解釋的簡單道理。盲眼巨人不識數,他将羊群映射到石子,通過石子來管理羊群的數量,雖然方便可行,但這不叫計數,這是純映射。羊群的數量,羊群自身不能說明,映射到石子,石子也不能說明羊群的數量,石子本身的數量仍然需要有數才能得以說明。把羊群和石子換作集合,意思就是,集合中元素的數量,集合自身不能說明,也不能由另一個集合來說明,隻能由數來說明。沒有數,單純通過映射,從一個集合跳轉到另一個集合,即便再跳轉也沒用,我們将永遠不知道集合中元素的數量。

這裡需要明白一個道理,數是抽象的。集合也抽象,但相對于數來說,集合仍然是具體的。我們知道集合由元素決定,有什麼樣的元素則有什麼樣的集合,元素一旦确定,元素所屬的集合也就确定,元素一旦确定,元素的數量也就确定,集合的大小也就确定。不論是羊群、石堆,還是抽象的一個集合M,集合一旦确定,與生俱來的集合身上所固有的一個數也就确定,集合中的所有元素即是該數的實例。數是抽象的,數的實例是具體的,不能将數的實例等同于數自身,數不是實例,也不是集合,盡管數可以構成集合。

要弄明白數是什麼,或許還真不是一件容易的事情。我們從小第一次接觸數,往往會被告知,1就是一個蘋果,2就是兩個蘋果,一個蘋果就是1,兩個蘋果就是2,這時我們對數的認知可以概括為,數即對象,對象即數,數與具體對象不作區分。稍微往後,我們知道1不僅是一個蘋果,而是一個人,一塊橡皮,一隻螞蟻,一片樹葉,一分鐘,一小時,是所有這些可以用1來表示的對象的共同屬性,數與具體對象有所區分。最後我們才會認識到,數是可以運算的符号,它隻存在于在數與數的運算當中,與對象無關。這就是人們對數的認知,從具體到抽象,要經曆的3個階段:

1、數即對象,對象即數;2、數是各種對象的一個共同屬性;3、數是可以運算的符号。

對于一個接受現代教育的人來說,小學畢業就應該達到第3階段的認知水平。那麼我們站在今天,回望150年前,來看康托爾以及康托爾所處的那個時代,他們對數的認知是哪個水平呢?可想而知,以康托爾為代表的知識精英,對于普通數的認知,大概都能達到第3階段的認知水平。但是對于無窮,還處在第1階段的前階段,或者稱為第0階段。自亞裡士多德以來,人們對無窮的讨論都是基于某個具體的過程,這個具體過程隻能是不可完成的潛無窮過程,還不能是可完成的實無窮過程,都是在讨論對象,而不是在讨論數,無窮不是數,至今仍是普遍共識。康托爾是把無窮當作數來研究和讨論的第一人,為此他創制的方法是集合論,收獲的成果是超窮數理論。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved