算术基础(一)进制与数量

称为基础算术(Fundamental Arithmetic)的原因其实在于,这一讲的内容真的只是最简单的算术知识的转化而已。

普遍被承认的一个理论说,人们惯用十进制的原因是我们有十个手指,所以我们能够对这么一个独特的数比较敏感。而至少目前我们所学的绝大多数数学以及其衍生科学的内容都是以十为基的,而且就目前来看,要做一些改变有难度,也没必要。

十进制(decimal system)毕竟不是解决所有问题的方便工具。鸡鸭鹅们估计就会对十进制很费解,时钟和月份都是逢12一个轮回,时分秒转换的基是60,一周有七天,一个圆周为360°或者是2π…虽然这些基底(base)的表示还是基于十进制的(没有引入特殊的表示方式),但还是有,并且还将会有更多问题,是需要真正引入新的数制才能更有效地解决。

计算机科学(computer science)所面临的就是这么一坨问题。由于一个逻辑位只能有两种状态,所以便衍生出了二进制(binary system)(另外有一个说法,说是某位中西兼备的科学家受易经中易卦符号的启发,于是便产生了二进制;说法是否可靠不太清楚,但是易卦符号确实是中国古代先人的一个非常抽象的创造),阿拉伯数字表示中仅含有1和0这两个字符,但是却能够通过这两个字符依照某种次序出现来表示所有的自然数。但二进制要比较稳妥方便的表示数却也有点麻烦,要写16个1才能代表十进制的65535,相较于庞大到无穷的自然数系,这个数的量级其实不能算大的,而无论人去书写还是辨认都是需要花费一些精力的。所以进一步的,由二进制可以每两位取一次转化为四进制(字符集为0-3)、每三位取一次转化为八进制(0-7)、每四位取一个转化为十六进制(0-9以及A-E),甚至如果你还想方便,可以用Kcode32(我在几年前设计的一个编码方式)和Base64来表示三十二进制和六十四进制。毕竟,对计算机来说,任何东西都要转化成1和0才行。

所以,任何一个量都可以拿来作为基底,所需要的只是能够有效的表示即可。阿拉伯数字共有十个(0-9),所以用来表示十进制和基底小于10的进制比较方便,而当基底大于10的时候,就需要考虑引入其他字符来扩展了。不过还好,拉丁字母和希腊字母都分别由26个,再区分一下大小写,那就有一百多个新的字符,刨除字形重复的也有一百个左右。一百以内的数制的表示完全没问题;或者可以采用日语假名,那也有接近一百个字符;松田行正的符号学著作《零(ZEЯO)》中有近万个符号可供选择;实在不济了,伟大的中华民族还有一个拥有数万符号汉字系统,那个时候随便几位数字就能够突破十进制的亿万数量级了。

比如,你可以用“己已巳”来表示三进制,用“乾坤离坎震艮兑巽”来表示八进制,用六十四个易卦符号来表示六十四进制。只要你喜欢。

但是,数学本身就是用来简化复杂度(complexity)从而处理复杂性问题的,同样数学自身也具有一定程度的复杂性;为了简化而引入某种工具是好的做法,但是如果由于该工具的引入导致复杂度增加,反倒是一种常规情形下不太推崇的做法(比如用“乾坤……”来表示八进制,虽然“乾乾得乾”这种乘法口诀由于谐音听来很好听,但书写表示和理解起来远比1×1=1困难)。所以有些东西虽然创造出来但还是会被放在一边,只有那些比较方便使用的才比较经常被拿出门面来(二八原则!),类似,计算机科学中比较常用的也是二、八、十、十六这四个数制而已。

进制说完之后接下来就是基于进制的运算(算术)了。

首先明确量(measurement)的概念。(如果没有特殊说明,所有汉字数字(Chinese numerals)表示都是十进制形式。)

所谓“量”,是一个基本的概念,用来描述个体或者相对应的元素的存在状态及存在形式,如质量(mass)、动量(momentum)、能量(energy)等等。“量”的概念是本质上的,不随其描述形式的变化而发生变化,例如,当表示数量的时候,八进制的12和十进制的10是同等的,其他量也如此。在量所描述的内容不被破坏的系统中,量是守恒的。特别地,量之间可以存在一些转换关系,如爱因斯坦的质能方程所描述的就是质量和能量之间的转换,而这种转换同样守恒。

数量(count)也是一种量,也遵循以上的准则。

而数字(number)只是数量在某种形式上的表现,一定程度上能够体现量的含义,但当以不同的方式去解释数字的时候,可能会得到不同的量;但对于同一量所对应的不同数字,无论有多少种变化形式,该量所表示的内容永远不会改变。

一般我们以汉字数字表示量,以西文字符来表示数(数是量的形式化体现,在这一讲出现的基本上是二、八、十、十六进制数字)。这一讲主要是围绕数字和算术的,关于数和量的更深层次的思考,将放在后面讨论。