記數系統

維基百科,自由的百科全書
前往: 導覽搜尋
記數系統
印度-阿拉伯數字系統
西方阿拉伯數字
阿拉伯文數字
高棉數字
印度數字
波羅米數字
泰語數字
漢字文化圈記數系統
中文數字
閩南語數字
越南語數字
算籌
日語數字
朝鮮文數字
蘇州碼子
字母記數系統
阿拉伯字母數字
亞美尼亞數字
西里爾數字
吉茲數字
希伯來數字
希臘數字
阿利耶波多數字
其它記數系統
雅典數字
巴比倫數字
古埃及數字
伊特拉斯坎數字
瑪雅數字
羅馬數字
底數區分的進位制系統
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 20 60 64

記數系統,或稱記數法數制,是使用一組數字符號來表示的體系。

一個理想的記數系統能夠:

  • 有效地描述一組數(例如,整數實數
  • 所有的數對應唯一的表示(至少有一個標準表示法)
  • 反映數的代數算術結構

記數系統可以按照以下方式分類:

歷史[編輯]

在木頭、骨頭或石頭上的計數符號從史前時代就開始被使用了。石器時代的文化,包括古代印第安人,使用計數符號進行賭博、私人服務和交易。

在公元前8000年至前3500年間,蘇美爾人發明了使用粘土保留數字信息。他們的做法是將各種形狀的小的粘土記號像珠子一樣串在一起。從大約前3500年開始,粘土記號逐漸被數字符號取代。這些數字符號是使用圓的筆針刻在粘土塊上,然後燒制而成的。大約前3100年,數字符號與被計數的事物分離,成為抽象的符號。在前2700年至前2000年間,圓的筆針逐漸被一種尖的筆針取代,這種筆針可以在粘土上刻出楔形符號。這種楔形數字和圓形數字相似,並保留了符號數值記數法。這些記數系統逐漸演變成了一種常見的六十進位系統。這個系統是一種位置數值記數法,只使用豎向的楔形和人形兩種符號,而且能夠表示分數。這個系統在古巴比倫的初期(大約前1950年)得到了充分的發展,並成為巴比倫尼亞的標準。

上述六十進位系統是一種混合進位制系統,它的一個符號序列的不同位置上使用10和6兩個基數。這個系統被廣泛地應用於商業,同時也在天文學和其他計算中被使用。這個系統從巴比倫尼亞輸出,並傳遍了美索不達米亞,包括希臘羅馬埃及。今天,我們仍然用它來計算時間(1小時=60分鐘)和角度(1度=60分)。

中國古代採用算籌記數,個位百位萬位等奇數位用縱籌,偶數位用橫籌,零用空位表示。有時,軍隊人數和供給品記數採用質數算籌,並按照模算術運算。(參看:大衍求一術中國剩餘定理)。模算術的好處在於,儘管其加法相對困難,但乘法很容易。這使得模算術很適合軍需品的計算。在現代,同樣的模算術有時用於數位訊號處理

羅馬帝國使用臘、紙草、和石頭上的割符,大致遵從希臘人將字母對應不同數的習慣。羅馬數字在歐洲被普遍使用,直到1500年代進位制開始流行。

中美洲的瑪雅數字採用20或18[來源請求]為基數的系統,可能繼承自奧爾梅克文明,它包含了位置數值記數法和這樣的高級屬性。他們將此用於高級的天文計算,包括高精度的太陽年長度和金星軌道的計算。

印加帝國採用奇普,一種打結的帶顏色的繩子來記數。關於使用結和顏色來編碼的知識被西班牙征服者於16世紀所擯棄,並因此失傳。今天,簡單的結繩工具仍在安地斯山脈地區使用。

有些權威認為數位算術隨著中國算盤的廣泛使用而開始。最早的書面數位記錄似乎是大約400年的算盤計算的結果。特別在大約932年,零已被中國數學家正確地表述了,並且似乎是因為採用一個圓圈表示沒有算盤珠子的那一位而產生的。

印度,現代數位數字系統被傳給阿拉伯人。可能是和天文表格一起,這一系統被一位印度大使在約773年帶到巴格達。對於印度的數字系統的詳細討論,參看阿拉伯數字印度數字

從印度出發,伊斯蘭蘇丹們和非洲的旺盛貿易將此數字系統的概念帶到了開羅。阿拉伯數學家們將此系統推廣到十進位分數。在9世紀,花拉子密寫下了關於該系統的重要著作。隨著12世紀該著作在西班牙被翻譯和斐波那契的《計算書》在1201年的出版,該系統傳入歐洲。在歐洲,完整的帶零的印度系統是於12世紀由阿拉伯人帶來的。

二進位系統由萊布尼茲在17世紀傳播,萊布尼茲在他工作的早期形成了這一概念,並在閱讀中國的《易經》再次鞏固了這一想法。由於計算機的使用,二進位系統在20世紀變得更加普遍。

常用基數[編輯]

[編輯]

十進位是今天最為常用的系統。它被視為因為人類具有十根手指而產生。

二十[編輯]

瑪雅文明和其它前哥倫布時期中美洲文明使用二十進位因努伊特因努伊特數字,可能是源於人的手指和腳趾總數。

[編輯]

基數8的系統(八進位)是北加利福尼亞的Yuki部落設計的,他們使用了手指間的間隔來數數。也有語言學證據顯示青銅時代印歐人(多數歐洲和印度語言來源於此)可能用基數10的系統取代了基數8系統(或者一個只能數到8的系統)。證據是代表9的詞,newm,根據一些歷史學家推測來源於「新」('new', newo-),這表示數字9是當時最近發明的,所以稱為『新數』('new number') (Mallory & Adams 1997年)。

[編輯]

涅涅茨語曾經使用基數9的系統(九進位),但在俄語的影響下轉變為十進位。yúq一詞最初表示9,但在俄語影響下變成了10的意思;所以在現在的涅涅茨,9現在是xasu-yúq,也就是「涅涅茨yúq」,而10就是yúq,但在東部方言中也作lúca-yúq, 也就是「俄語yúq」。

十二[編輯]

基數12的系統(十二進位)曾經很流行,因為乘法和除法比十進位方便,而加法同樣簡單。12很有用,因為它有很多因子。它是1到4最小的公倍數。我們對十二有一個特殊的詞「打」(dozen),並且使用12小時作為一個白天或者一個黑夜。十二進位可能來自於一隻手除了拇指以外的四個手指的指節個數,它們曾被用來記數。

六十[編輯]

基數為60的系統(六十進位)是蘇美爾人和他們在美索不達米亞的繼承者所使用的,今天還在我們的計時系統中存在(所以一小時有60分鐘而一分鐘有60秒)。60也有大量因子,包括前六個自然數。六十進位系統被認為是因為十進位和十二進位合併過程中產生的。中國曆法中,六十進位的甲子系統用於表示年,每個60年循環中的年用兩個符號代表,第一個符號是十進位的天干,第二個符號是十二進位的地支。兩個符號在後續一年中同時前進一,這樣同樣的組合在60年後再現。該系統的第二個符號也和12個動物的生肖系統對應。

[編輯]

基數為2的系統(二進制)的流行及應用主要是因為電子計算機的發明。以2為基數,也代表只有兩種變化:不是1就是0。最初的電子計算機以開關電路組成,只有兩種狀態:開(1)及關(0),並以此引伸作各種複雜的邏輯變化。而現今二進制亦普遍使用於數碼影音系統中。

十六[編輯]

基數為16的系統(十六進制)曾經在中國的重量單位上使用過,比如,規定16兩為一斤。現在的16進位則普遍應用在電腦領域,這是因為將二進位數字轉化為十六進位數字非常容易,用十六進位表達數字比用二進制方便。1位元組(一個8個位的二進位數字)可以很方便的表示成一個兩個位的16進位數字。

進位制詳解[編輯]

在基數b的位置記數系統(其中b是一個正自然數,叫做基數),b個基本符號(或者叫數字)對應於包括0的最小b個自然數。 要產生其他的數,符號在數中的位置要被用到。最後一位的符號用它本身的值,向左一位其值乘以b

例如,在十進位系統中(基數10),數4327表示(4×103) + (3×102) + (2×101) + (7×100),注意100 = 1。

一般來講,若b是基底,我們在b進位系統中的數表示為a1bk + a2bk-1 + a3bk-2 + ... + ak+1b0的形式,並按次序寫下數字a1a2a3 ... ak+1。這些數字是0到b-1的自然數。

若一段文字(譬如這段文字)討論多個基數,若有歧義時,基數(本身用十進位表示)用下標方式寫在數的右邊。除非有上下文說明,沒有下標的數字視為十進位。 通過使用一點(小數點)來將數字分成兩組,就可以用位置系統來表示小數。例如,基數-2系統10.11表示1×21+ 0×20 +1×2-1 +1×2-2 = 2.75。

一般來講,b進位系統中的數有如下形式:

數bk和b-k是相應數字的 比重

注意有一個數有一個終止或者循環若且唯若它是有理數;這不依賴於基數的選擇。在一個進位中終止的數可以在另外一個有循環小數(thus 0.310 = 0.0100110011001...2)。一個無理數在所有進位中不循環(無窮位不循環數字)。這樣,例如二進位中,π = 3.1415926...10可以寫作不循環的11.001001000011111...2

b=p是一個質數,可以定義其向左的擴展不停止的p進位數字;這些數字稱為p進數(p-adic)。

進位轉換[編輯]

轉換正整數的進位的有一個簡單算法,就是通過用目標基數作長除法;餘數給出從最低位開始的「數字」。例如,1020304從10進位轉到7進位:

1020304 / 7 = 145757 r 5 ↑  => 11446435
 145757 / 7 =  20822 r 3 │
  20822 / 7 =   2974 r 4 │
   2974 / 7 =    424 r 6 │
    424 / 7 =     60 r 4 │
     60 / 7 =      8 r 4 │
      8 / 7 =      1 r 1 │
      1 / 7 =      0 r 1 │

再如,10110111 從2進位到5進位:

10110111 / 101 = 100100 r 11  (3) ↑  => 1213
  100100 / 101 =    111 r  1  (1) │
     111 / 101 =      1 r 10  (2) │
       1 / 101 =      0 r  1  (1) │

轉換一個「十進位」小數,可以用重複乘法,將整數部分作為「數字」。不幸的是有限小數不一定轉換成為有限小數,例如0.1A4C從16進位轉換到9進位:

0.1A4C × 9 = 0.ECAC │
0.ECAC × 9 = 8.520C │
0.520C × 9 = 2.E26C │
0.E26C × 9 = 7.F5CC │
0.F5CC × 9 = 8.A42C │
0.A42C × 9 = 5.C58C ↓  => 0.082785...a

一般化變長整數[編輯]

更一般化的有一種記法(這裡寫作小頭式),例如a0a1a2 用作a0 + a1b1 + a2b1b2, etc.


參看[編輯]

參看[編輯]

參考[編輯]

  • Georges Ifrah. The Universal History of Numbers : From Prehistory to the Invention of the Computer, Wiley, 1999. ISBN 0-471-37568-3
  • 高德納. 《電腦程式設計藝術》. Volume 2, 3rd Ed. Addison-Wesley. pp.194–213, "Positional Number Systems".
  • J.P. Mallory and D.Q. Adams, Encyclopedia of Indo-European Culture, Fitzroy Dearborn Publishers, London and Chicago, 1997.

外部連結[編輯]