零与位值:会计算的数字
试着计算 $\text{XLVII}$ 乘以 $\text{XII}$,不许换成我们的数字。
连从哪里下手都很难知道。$\text{XLVII}$ 里的 $\text{X}$ 表示十,但它在 $\text{L}$ 的前面,所以要减去:$\text{XL}=40$。$\text{V}$ 不管放在哪里都是五。这里没有个位一栏,也没有十位一栏,每个符号的值都挂在它自己的形状上。同样的计算写成 $47\times 12$,两行就做完了:
$$47\times 12 = 47\times 10 + 47\times 2 = 470 + 94 = 564.$$结果用罗马数字写是 $\text{DLXIV}$。罗马人并不是不会算账。他们只是不用数字本身来计算:他们在算盘或画了线的桌面上用小石子计算,数字只用来写下结果。小石子在拉丁文里叫 calculus,“计算”(calculation)一词就是从这里来的。
数字的值取决于它的位置
我们使用的是位值制:同一个形状,放在不同的位置上,值就不同。在 $205$ 里,$2$ 表示两百;在 $25$ 里表示二十;在 $2$ 里表示二。
用符号学的话来说,单独一个数字 $2$ 是一个不完整的符号。补全它意义的是它的位置;而当某一位是空的时候,守住这个位置的是零。像 $205$ 这样的书写,它的值不在三个形状中的任何一个里,而在组织它们的规则里:
$$205 = 2\cdot 10^2 + 0\cdot 10^1 + 5\cdot 10^0.$$所以位值制是能动的记号的绝佳例子。我们在学校学的加减乘除规则(“进一”“借一”)之所以存在,正是因为这种书写把个位对齐个位、十位对齐十位。计算就在纸上完成,不需要算盘。
通往零的漫长旅程
大约公元前 1800 年,巴比伦人就已经用位值的方式写数,采用六十进制(这就是一小时有 60 分钟的原因)。但在许多世纪里,他们没有表示空位的符号:$1$ 和 $60$ 可能长得一样,读者只能根据上下文去猜。直到大约公元前 300 年,泥板上才出现一个分隔符号,用来标出数中间的空位。在世界的另一边,玛雅人也得到了一个零,画得像一只贝壳。
是在印度,零才不再只是占位的记号,而成为一个数。628 年,天文学家婆罗摩笈多写下了用零计算的规则:一个数减去它自身得零;零加上一个数得这个数本身;零乘以任何数都得零。巴格达的数学家采用了印度的九个数字和零,花拉子米在大约 825 年写了一本关于如何用它们计算的书。这本书的拉丁文译本以 Dixit Algorizmi(“花拉子米说”)开头。作者的名字变成了“算法”(algorithm)一词。
在基督教欧洲,这个转折有明确的日期和作者。比萨的列奥纳多,也就是人们熟知的斐波那契,在北非的商人中长大,看到阿拉伯商人在纸上计算,回到意大利时已深信不疑。1202 年,他出版了《计算之书》(Liber abbaci),开头是这样写的:
印度人的九个数字是:9 8 7 6 5 4 3 2 1。用这九个数字,再加上这个符号 0(阿拉伯语叫作 zephirum),就可以写出任何一个数。
— 比萨的列奥纳多,《计算之书》(1202)
阿拉伯语的 ṣifr(空)一方面演变成 zephirum、zefiro,最后成了 zero(零);另一方面变成 cifra,长期以来指零本身,后来指任何一个数字,最后又指密码(cipher)。
只有位值才显示出的规律
能动的记号不只让计算更容易,它还让规律一目了然。看看 9 的乘法表:
$$9,\ 18,\ 27,\ 36,\ 45,\ 54,\ 63,\ 72,\ 81,\ 90.$$十位从 $0$ 升到 $9$,个位从 $9$ 降到 $0$,两个数字之和总是 $9$。要算 $9\times 7$,只要记住十位比 $7$ 少一(也就是 $6$),个位把 $9$ 补齐(也就是 $3$):$63$。用罗马数字,同一张表是 $\text{IX}, \text{XVIII}, \text{XXVII}, \text{XXXVI}, \text{XLV}, \ldots$,规律根本就不在那里。规律属于数本身,但只有在允许它显现的书写中才看得见。
练习:9 的乘法表为什么成立?
对于从 $1$ 到 $10$ 的 $k$,可以改写为
$$9k = 10k - k = 10(k-1) + (10-k).$$第一项说明十位是 $k-1$,第二项说明个位是 $10-k$。两个数字之和是 $(k-1)+(10-k)=9$。这个证明用到的正是位值规则:“十位乘以 10,再加上个位”。
练习:用罗马数字写 2026
$2026 = 1000+1000+10+10+5+1$,写作 $\text{MMXXVI}$。这里没有需要标出的空百位,因为罗马数字根本没有“位”:百位上什么也不写就行了。这样读起来没问题,却无法把数对齐、一列一列地相加。这正是“记录的书写”和“计算的书写”之间的区别。