Featured image of post 量數和序數

量數和序數

從一點到三點,過了幾個小時?2021年出生的孩子,到了2023年幾歲?計算這些可能很簡單,但時刻、小時、年份、年齡背後的概念,量數1和序數的關係,並不是一目了然的。

量數遠比序數有用。量數是表示數量的數,可以進行加減乘除等數學運算,這些運算對應着現實中物件的合併和分割;而序數只是表示物件先後次序的標籤,沒有數學運算可言。比如在時鐘上,兩點在一點的後面,三點在兩點的後面,但是不能把「一點」和「兩點」加起來得到「三點」,這是沒有意義的。

要利用序數,就要先轉換成有用的量數。對於不同的問題,我們關心的量數是不一樣的,所以轉換方法也不一樣。

在數物件的時候,我們關心的量數是「物件的量數」,這剛好和「最後一個物件的序數」是相等的。比如要知道桌子上有幾個蘋果,就要「第一個,第二個,第三個」這樣數出來。如果數到了第三個蘋果,數過的蘋果總數就是三個。

但是有時候,我們想知道的量數,是序數之間的「距離」,和序數本身無關。比如說時鐘使用的序數是「點」,但我們並不關心時間點的數量,而是經過了幾個小時,也就是時間點之間的「距離」。從一點到三點過了三個時間點,但只過了兩小時。數法是一點走到兩點一小時,兩點走到三點兩小時。同樣,計算年齡使用的序數是「年份」,但我們也不關心經過了幾個年份,只關心過了多少年。年也是一種距離。2021 到 2023 年總共過了三個年份,但只長了兩歲。

序數相減得出距離。只要計算 3 - 1 = 2,2023 - 2021 = 2,就知道度過了兩小時,長了兩歲。換個方向,把序數加減一個距離,就可以得到另一個序數。比如從一點開始過了兩小時,就到了 1 + 2 = 3 點。

這些雖然是基礎得不能再基礎的算數題,但要注意,理論上序數可以從任何數字開始數,方向也不是固定的,所以轉換方法也不一樣。這是在生活中不會出現的問題,因為我們總是從 1 開始順着數;但是在麻煩的程式語言領域是從 0 開始數的,所以不把這些概念弄清楚的話,會有很多麻煩。


  1. 集合論一般稱為基數,我只是挑了個我喜歡的詞。 ↩︎

🌐Check out other language versions!
網站使用 Hugo 製作
模板 StackJimmy 設計