納皮爾的骨頭

納皮爾的骨頭（Napier's bones）是蘇格蘭數學家約翰納皮爾發明的一種用來計算乘法與除法，類似算盤的工具。由一個底座及九根圓柱（方柱）組成，可以把乘法運算轉為加法，也可以把除法運算轉為減法。更為進階的用法也可以開平方根

<image>

納皮爾的骨頭在清初傳入中國，數學家梅文鼎在《梅氏叢書輯要》中最先介紹納皮爾的骨頭，梅氏稱之為「籌算」。後來戴震著作《策算》也敘述了這種演算法。

<image>

## 簡介

底座左邊的數字由上而下是1-9。先將之稱為n。

每根圓柱又分為十格，下面九格有自左下而右上的斜線。最上面的格子寫著1-9的數字，姑且稱為k，代表著這根柱子的編號。編號下面的數字則是由k乘上橫排相對應的n得到的，十位數擺左上角，個位數擺右下角。

### 乘法運算

舉例說明如何用納皮爾的骨頭進行乘法運算。

46785399乘以7

1.把編號4,6, 7,8, 5,3, 9,9的圓柱依序放入底座。

2.如下圖將結果相加即得到乘積（記得要進位）。

<image>

46785399乘以96431

1.把編號4,6, 7,8, 5,3, 9,9的圓柱依序放入底座。

2.將46785399乘以9,6, 4,3, 1分別用上述方法一條一條算出來。

3.接著用直式加法把數字加起來。

<image>

### 除法運算

同樣舉例說明。

46785399除以96431

1.把除數（96431）編號的柱子擺入底座。

2.如下圖所示把96431乘以1-9的結果寫出來。

- 46785399從左邊六位開始看，下面寫上小於467853但最大的96431k。

4.用467853去減96431k（此例中k=4），得到的數字寫下面。

5.把上面的數字（9）移下來，如同長除法般重複進行此動作。

6.最後得到一個比96431還小的數，為餘數。

7.如有需要，可以一直進行除法工作以得到小數點位數。

<image>

### 開平方根

用來開平方根的納皮爾的骨頭會用到第十根柱子，上有三個直排。第一排上有數字1-9的平方，第二排是數字2,4, ...,18，第三排則是1-9。

1｜2｜3｜4｜5｜6｜7｜8｜9｜√

1｜0/1｜0/2｜0/3｜0/4｜0/5｜0/6｜0/7｜0/8｜0/9｜0/1 2 1

2｜0/2｜0/4｜0/6｜0/8｜1/0｜1/2｜1/4｜1/6｜1/8｜0/4 4 2

3｜0/3｜0/6｜0/9｜1/2｜1/5｜1/8｜2/1｜2/4｜2/7｜0/9 6 3

4｜0/4｜0/8｜1/2｜1/6｜2/0｜2/4｜2/8｜3/2｜3/6｜1/6 8 4

5｜0/5｜1/0｜1/5｜2/0｜2/5｜3/0｜3/5｜4/0｜4/5｜2/5 10 5

6｜0/6｜1/2｜1/8｜2/4｜3/0｜3/6｜4/2｜4/8｜5/4｜3/6 12 6

7｜0/7｜1/4｜2/1｜2/8｜3/5｜4/2｜4/9｜5/6｜6/3｜4/9 14 7

8｜0/8｜1/6｜2/4｜3/2｜4/0｜4/8｜5/6｜6/4｜7/2｜6/4 16 8

9｜0/9｜1/8｜2/7｜3/6｜4/5｜5/4｜6/3｜7/2｜8/1｜8/1 18 9

求出46785399的平方根

1.把46785399分為兩位兩位一組，46 78 53 99。（如果奇數位數，如83559，寫成8 35 59）

2.從最左邊那組，46，開始。找出比這數最小的完全平方數，是在第六橫排上的36。

3.因為是從第六橫排上挑出來的，所以答案的第一位是6。

4.找到第十根柱子上的第六橫排第二直排，12，然後把1跟2的柱子放在底座上。

5.用46減去36得到10，然後把上面下一組的78移到10的右邊。

1｜0/1｜0/2｜0/1 2 1 2｜0/2｜0/4｜0/4 4 2 3｜0/3｜0/6｜0/9 6 3 4｜0/4｜0/8｜1/6 8 4 5｜0/5｜1/0｜2/5 10 5 6｜0/6｜1/2｜3/6 12 6 7｜0/7｜1/4｜4/9 14 7 8｜0/8｜1/6｜6/4 16 8 9｜0/9｜1/8｜8/1 18 9｜_____________ √46 78 53 99 = 6 36–10 78

7.找出比1078還要小但最大的數，在此第八橫排的1024是最大的：

```
 <sup>0</sup>/<sub>8</sub> <sup>1</sup>/<sub>6</sub> <sup>6</sup>/<sub>4</sub> → 1024
```

- 8為答案的下一位數，寫在6旁邊，然後把1078減去1024得到54。

1｜0/1｜0/2｜0/1 2 1｜121 2｜0/2｜0/4｜0/4 4 2｜244 3｜0/3｜0/6｜0/9 6 3｜369 4｜0/4｜0/8｜1/6 8 4｜496 5｜0/5｜1/0｜2/5 10 5｜625 6｜0/6｜1/2｜3/6 12 6｜756 7｜0/7｜1/4｜4/9 14 7｜889 8｜0/8｜1/6｜6/4 16 8｜1024 9｜0/9｜1/8｜8/1 18 9｜1161｜_____________ √46 78 53 99 = 68 36–10 78 10 24 ----- 54

9.把之前的12乘上10，再加上第十根柱子第八橫排第二直排的數，16，得136。

10.重複上述步驟可得到結果：

1｜0/1｜0/3｜0/6｜0/1 2 1 2｜0/2｜0/6｜1/2｜0/4 4 2 3｜0/3｜0/9｜1/8｜0/9 6 3 4｜0/4｜1/2｜2/4｜1/6 8 4 5｜0/5｜1/5｜3/0｜2/5 10 5 6｜0/6｜1/8｜3/6｜3/6 12 6 7｜0/7｜2/1｜4/2｜4/9 14 7 8｜0/8｜2/4｜4/8｜6/4 16 8 9｜0/9｜2/7｜5/4｜8/1 18 9｜_____________ √46 78 53 99 = 68 36–10 78 10 24 ----- 54 53

11.再次找到比5453還要小但最大的數，為4089。5453減去4089為1364，並把3寫在68的旁邊。

1｜0/1｜0/3｜0/6｜0/1 2 1｜1361 2｜0/2｜0/6｜1/2｜0/4 4 2｜2724 3｜0/3｜0/9｜1/8｜0/9 6 3｜4089 4｜0/4｜1/2｜2/4｜1/6 8 4｜5456 5｜0/5｜1/5｜3/0｜2/5 10 5｜6825 6｜0/6｜1/8｜3/6｜3/6 12 6｜8196 7｜0/7｜2/1｜4/2｜4/9 14 7｜9569 8｜0/8｜2/4｜4/8｜6/4 16 8｜10944 9｜0/9｜2/7｜5/4｜8/1 18 9｜12321｜_____________ √46 78 53 99 = 683 36–10 78 10 24 ----- 54 53 40 89 ----- 13 64

12.把3乘2的結果加上之前136的十倍，得到1366。把1,3, 6,6的版子擺入底座。

13.再度重複上述步驟。現在比最底下的數小的數是第九橫排的123021。

1｜0/1｜0/3｜0/6｜0/6｜0/1 2 1｜13661 2｜0/2｜0/6｜1/2｜1/2｜0/4 4 2｜27324 3｜0/3｜0/9｜1/8｜1/8｜0/9 6 3｜40989 4｜0/4｜1/2｜2/4｜2/4｜1/6 8 4｜54656 5｜0/5｜1/5｜3/0｜3/0｜2/5 10 5｜68325 6｜0/6｜1/8｜3/6｜3/6｜3/6 12 6｜81996 7｜0/7｜2/1｜4/2｜4/2｜4/9 14 7｜95669 8｜0/8｜2/4｜4/8｜4/8｜6/4 16 8｜109344 9｜0/9｜2/7｜5/4｜5/4｜8/1 18 9｜123021｜_____________ √46 78 53 99 = 6839 36–10 78 10 24 ----- 54 53 40 89 ----- 13 64 99 12 30 21 -------- 1 34 78

14.再把9加到答案當中，得到整數答案6839。

我們把題目給的數46785399用完了，但是底下還有餘數13478。這意味著6839只是答案的整數部分，$\sqrt{46785399}$的實際值應當比6839大，比6840小。如果有需要繼續做下去以得到小數部分的話，下一組的兩個數字就要用00：

1｜0/1｜0/3｜0/6｜0/7｜0/8｜0/1 2 1 2｜0/2｜0/6｜1/2｜1/4｜1/6｜0/4 4 2 3｜0/3｜0/9｜1/8｜2/1｜2/4｜0/9 6 3 4｜0/4｜1/2｜2/4｜2/8｜3/2｜1/6 8 4 5｜0/5｜1/5｜3/0｜3/5｜4/0｜2/5 10 5 6｜0/6｜1/8｜3/6｜4/2｜4/8｜3/6 12 6 7｜0/7｜2/1｜4/2｜4/9｜5/6｜4/9 14 7 8｜0/8｜2/4｜4/8｜5/6｜6/4｜6/4 16 8 9｜0/9｜2/7｜5/4｜6/3｜7/2｜8/1 18 9｜_____________ √46 78 53 99 = 6839. 36–10 78 10 24 ----- 54 53 40 89 ----- 13 64 99 12 30 21 -------- 1 34 78 00

這些步驟可以一直重複使得到的答案無限逼近正解。

最後，如果要求平方根的數是小數的話，將數字分組的時候整數部分跟小數部分要分開分組；整數部分如常，小數部分則是方向相反。

例如數字54782.917的分組情況為：

5 47 82 . 91 7

接著便可開平方。