數學極客:超出自然數的範圍——什麼是整數?

數學極客:超出自然數的範圍——什麼是整數?

節選自《數學極客:探索數字、邏輯、計算之美》, 已獲機械出版社授權許可, [遇見數學] 特此表示感謝!

第二章 整數 Integer

自然數是我們最先認識的數字,但是它們完全不夠用。考慮到我們使用數字的方式,最後你不可避免地需要擴展,超出自然數的範圍。

如果你去一家商店買東西,通過支付金錢來換取你想買的商品。可以用3美元買一些麵包,如果你給店主5美元,店主需要找你2美元。

當你試圖利用自然數去理解這個過程時,你會發現這個過程說不通。錢沿兩個不同方向流動。第一個方向是從你流向商店——花掉你的錢;第二個方向是從商店流向你——得到找零的錢。正數和負數可以讓我們區分這兩個流動的方向。

數學極客:超出自然數的範圍——什麼是整數?

2.1 什麼是整數

如果你有自然數而想要整數,那麼你不得不做的事是添加一個加法逆元。如果你理解自然數並且想進一步理解整數,那麼你只需要添加一個方向。想象一個數軸,自然數從0開始向右延伸,和0的左邊沒有關係;整數在自然數的基礎上,加上從0向左延伸的負數。

整數的含義遵從方向的概念。從基數和序數兩個含義上來看,正整數和自然數一模一樣。負整數可以讓你往另一個方向移動。如果通過基數的方式來思考,整數可以描述在集合間移動元素。如果你有一個大小為27的集合和另一個大小為29的集合,那麼為了讓這兩個集合的大小一樣,你可以選擇給第一個集合添加兩個元素,或者從第二個集合中去除兩個元素。如果你添加兩個元素給第一個集合,那麼你是在用正的基數做事情。如果你從第二個集合中去除兩個元素,那麼你是在用負的基數做事情。

從序數的角度講就更容易理解了。如果你正在看一個集合裡的第3個元素,然後想看第5個元素,那麼就正向移動2步,這個動作是通過正的序數描述的。如果你正在看第5個元素,然後想看第3個,那麼就往回移動2步,這個動作是通過負的序數描述的。

讓我們轉向公理化的定義。整數是通過給自然數添加一個逆規則延伸出來的數字。從自然數集合N開始,再加上皮亞諾規則,我們只需要額外添加一個加法逆元的定義。非零自然數的加法逆元就是負整數。為了得到整數,我們只需要添加下面兩條新的規則。

加法逆元:對於任意一個非零的自然數n,總是存在一個不是自然數的數字-n,使得n+(-n)=0。我們稱-n是n的加法逆元,稱自然數集合和它們的加法逆元為整數。

逆元唯一性:對於任意的兩個整數i和j,當且僅當i是j的加法逆元,j才是i的加法逆元。

通過這些規則,我們得到了新的事物。我們之前討論的自然數不能滿足這些規則。那麼新事物(負整數)是從哪兒來的?

答案有點令人失望。它們並不是從哪兒來的,它們本來就存在。在數學裡,我們不能創造物體,只能描述它們。這些數字(自然數、整數、實數)存在是因為我們定義了描述它們的規則,並且這些規則相互兼容地描述了一些事物。

對於所有這些,有一種時髦的說法:整數是包括零、正數和負數的所有數字。

類似地,如果你定義了自然數上的加法,加性逆元規則足夠讓加法同樣適用於整數。並且,因為自然數的乘法只是重複的加法,所以乘法同樣適用於整數。

作者從數字的基礎開始帶你開啟美麗的數學之旅,首先通過探討一些有趣的和奇怪的數字,如整數、自然數、有理數、超過數、零、黃金比例、虛數、羅馬數字、埃及分數和連分數,帶你領略數字的趣味性、數字之美和數字之用,然後深入研究現代邏輯,包括線性邏輯、Prolog語言等,以及現代集合論和現代機械化計算的進展與悖論,帶你感受數學的邏輯性和計算性。

2.2 自然地構造整數

我們可以自然地創建數學結構來表示整數。這些結構稱為整數的模型。但是,為什麼可以呢?另外,模型到底是什麼呢?

數學極客:超出自然數的範圍——什麼是整數?

在一個新事物(比如整數)的模型中,我們試圖證明有某種方法可以讓對象遵守我們定義的公理。出於這個目的,你可以選擇已經知道的事物,把它們作為“建築的積木”。使用這些積木,你構建一些新的事物,並且讓它們遵守新系統的公理。例如,說到整數,我們將拿我們已經熟悉的自然數來當積木,然後用這些積木去構建能代表整數的事物。如果我們能證明這個模型裡的事物遵守自然數的公理,那麼就可以知道我們對整數的定義在數學上是相兼容的。

我們為什麼要做這些呢?

有兩個原因讓我們去構建那樣的模型:第一,一個模型能證明我們的公理是有意義的。當我們寫一個公理集的時候,很容易搞砸,並且很意外地以不一致的方法寫我們的模型。一個模型能證明我們沒有搞砸。我們能寫出一堆看起來合理的公理,但是它們可能存在一些細微的不兼容。如果真是如此,那麼我們定義的事物就是不存在的,即使是在抽象的數學世界中。並且更糟糕的是,如果我們在這樣的公理假設下工作,得到的每一個結論都是沒有任何價值的。前面說過,整數存在的原因是我們定義了整數,並且這些定義在數學上是相兼容的。如果我們不能證明可以構建一個模型,那麼就不能保證這些定義在數學上是相兼容的。

第二個原因沒有第一個原因那麼抽象:一個模型能讓我們理解起來更簡單,而且它可以描述我們構建的系統應該怎麼運轉。

在我們提及模型之前最後聲明一次,理解這一點非常重要,我們正在做的是給出一個整數的模型,而不是這個整數的模型!我們現在做的是描述一種表示整數的可能方式,整數並不是下面即將展示的表示方式。因為整數可以有很多種表示方式,只要這些方式符合公理就可以使用。模型與它所建模事物之間的區別是微妙的,但它非常重要。整數是公理描述的事物,而不是我們的模型所構建的,模型只是其中的一種表示方式。

表示整數最簡單的方式是用一對有序的自然數(a,b)來表示。一對自然數(a,b)代表整數(a-b)。顯而易見,(2,3),(3,4),(18,19)和(23413,23414)都代表了同一個數。從數學的角度講,整數是由這些自然數對的等價類組成的。

但是,什麼是等價類?

當我們做構建一個整數模型這樣的事情的時候,通常我們定義的方式不會針對每一個整數都創造出一個事物。我們所做的是定義了一個模型,針對這個模型裡的每一個事物,該模型裡有一個集合可以描述該事物,該集合裡的值都是等價的。這一組等價的值叫作等價類。

我們定義的整數模型中,通過構造一對自然數來刻畫一個整數。兩對數(a,b)和(b,c)是等價的:如果它們的第一個元素和第二個元素的距離相等,並且方向相同。例如(4,7)和(6,9)。在一個數軸上,為了從4走到7,你不得不往右邊走3步。為了從6走到9,你仍然不得不往右邊走3步。所以,它們屬於同一個等價類。但是,當你觀察(4,7)和(9,6)時,為了從4走到7,你將不得不往右走3步;而從9到6,你將不得不往左走3步。所以它們不屬於同一個等價類。

上面這種表示方式給了我們一個簡單的方法,以便我們理解如何將自然數的各種數學運算應用到整數上。我們理解自然數加法的含義,因此就可以定義整數的加法。

如果你有這裡的整數模型中的兩個對象,把它們定義為一對自然數:M=(m1,m2)和N=(n1,n2)。它們的加法運算和減法運算的定義如下:

■ M+N =(m1+n1,m2+n2)。

■ M-N =(m1+n2,m2+n1)。

■ 一個數 N =(n1,n2) 的加法逆元記作-N,是將這對自然數顛倒順序後的對: -N =(n2,n1)。

減法的定義可以證明是非常漂亮的。3-5將等於(3,0)-(5,0),它與(3,0)+(0,5)=(3,5)是相等的,並且是-2這個等價類的一個成員。並且,加法逆元的定義也只是減法的一個自然延伸:-N=0-N。

從自然數到整數,我們只需要做的是:增加加法逆元。自然數的減法,通常也需要某種語義上的加法逆元,但是這通常會使事情變得複雜化。

問題是,如果只使用自然數,你沒有辦法定義兩個自然數的減法操作。畢竟,如果你計算3-5,它的結果是沒有辦法使用一個自然數來表示的。但是使用整數,減法操作就實際可行了:對於任意的兩個整數M和N,M-N還是一個整數。使用正式的術語,我們說減法對於整數來說是一個

全函數,並且整數空間對於減法來說是封閉的

但是這也將我們引向了另外一個問題。當我們觀察整數的加法運算時,就會很自然地想到減法這個加法逆元操作,並且這個操作可以通過整數的加法逆元來定義。當我們轉向另一個常用的運算——乘法時,可以在自然數和整數上定義乘法,但是不能定義它的逆運算——除法,因為我們根本沒有可能在整數上定義乘法逆元操作。為了將除法描述成一個定義明確的運算,我們需要有另外一種類型的數——有理數,這將在下一章介紹。(未完待續)


分享到:


相關文章: