用加法做乘法:两个数列
把 2 的幂写成一行,下面写出它们的指数:
$$\begin{array}{c|ccccccccccc} 2^n & 1 & 2 & 4 & 8 & 16 & 32 & 64 & 128 & 256 & 512 & 1024\\ \hline n & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 \end{array}$$上面一行是等比数列:每个数是前一个数乘以 2。下面一行是等差数列:每个数是前一个数加 1。现在试着计算 $16\times64$。16 下面是 4,64 下面是 6。相加:$4+6=10$。10 上面是 1024。确实
$$16\times64=2^4\times2^6=2^{4+6}=2^{10}=1024.$$上面相乘,就是下面相加。 这就是法则 $2^a\times2^b=2^{a+b}$,也是对数的全部思想。
一个古老的想法
公元前 250 年左右,阿基米德在《数沙者》中为书写巨大的数而发明了一套系统,那时他就已注意到这条法则。1544 年,德国人米夏埃尔·斯蒂费尔在《整数算术》中把两个数列并排写出,正如上面那样,并写道:等差数列中的加法对应等比数列中的乘法,减法对应除法,除以 2 对应开平方。
| 上面(等比) | 下面(等差) | 例子 |
|---|---|---|
| 乘 | 加 | $32\times8=256$,因为 $5+3=8$ |
| 除 | 减 | $1024\div16=64$,因为 $10-4=6$ |
| 平方 | 乘以 2 | $32^2=1024$,因为 $2\times5=10$ |
| 开平方 | 除以 2 | $\sqrt{256}=16$,因为 $8\div2=4$ |
空隙
既然这个想法这么古老,为什么纳皮尔之前没人用它?因为表中有空隙。它能算 $16\times64$,却不能算 $17\times63$:17 和 63 都不在上面一行。16 和 32 之间什么也没有,512 和 1024 之间的空隙更大。有用的表,上面一行必须几乎包含所有的数。
纳皮尔的办法是把 2 换成一个非常接近 1 的数。2 的幂增长得很快,留下巨大的空隙;而例如 $1.0001$ 的幂增长得非常慢:
$$1.0001^{1}=1.0001,\quad1.0001^{2}=1.00020001,\quad\dots,\quad1.0001^{6932}\approx2.0000.$$步子这么小,上面一行就会经过任何数的附近,下面一行则给出它的"指数"。纳皮尔用的数更接近 1:$1-10^{-7}=0.9999999$,他花了多年时间计算它的各次幂。结果就是第一张对数表。
练习:用 2 的幂表计算 64 × 256 和 4096 ÷ 32。
$64=2^6$,$256=2^8$,所以 $64\times256=2^{6+8}=2^{14}=16\,384$。除法:$4096=2^{12}$,$32=2^5$,所以 $4096\div32=2^{12-5}=2^7=128$。
练习:在 1.0001 的幂组成的数列中,已知 2 的指数是 6932,3 的指数大约是多少?
不必重新计算。由于 $1.0001^{6932}\approx2$,任何数的指数都与它的对数成正比:3 的指数约为 $6932\times\frac{\ln3}{\ln2}=6932\times1.585\approx10\,987$。确实,$1.0001^{10\,987}\approx3.000$。指数之比不依赖于所选的步长;这保证了所有对数表从本质上说都是同一张表,只是比例不同。
来源: John Napier,Mirifici logarithmorum canonis descriptio(爱丁堡,1614)· Michael Stifel,Arithmetica integra(纽伦堡,1544)· Julian Havil,John Napier: Life, Logarithms, and Legacy(2014)。
约翰·纳皮尔的全部主题 · ← 约翰·纳皮尔的一生 · 纳皮尔的两个点:对数的定义 →
图片来源.