记数系统

维基百科,自由的百科全书
跳转至: 导航搜索
记数系统
印度-阿拉伯数字系统
西方阿拉伯数字
阿拉伯文数字
高棉數字
印度數字
波羅米數字
泰语数字
汉字文化圈記數系統
中文数字
越南语数字
算筹
日語數字
韓文數字
苏州码子
字母記數系統
阿拉伯字母數字
亞美尼亞數字
西里爾數字
吉茲數字
希伯來數字
希腊数字
阿利耶波多數字
其它記數系統
雅典數字
巴比倫數字
埃及數字
伊特拉斯坎數字
玛雅数字
罗马数字
底数区分的进位制系统
1 2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 26 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进制系统中的数有如下形式:


(a_na_{n-1}...a_1a_0.c_1c_2c_3...)_b = 
\sum_{k=0}^n a_kb^k + \sum_{k=1}^\infty c_kb^{-k}

数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.

外部连接[编辑]