跳转到内容

納皮爾的骨頭

维基百科,自由的百科全书

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

底座跟柱子

納皮爾的骨頭在清初传入中国,数学家梅文鼎在《梅氏丛书辑要》中最先介绍納皮爾的骨頭,梅氏称之为“筹算”。后来戴震著作《策算》也叙述了这种算法[1]

清代骨质算筹。中国财税博物馆藏。

簡介

[编辑]

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

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

乘法運算

[编辑]

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

46785399乘以7

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

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

運算方法

46785399乘以96431

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

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

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

運算方法

除法運算

[编辑]

同樣舉例說明。

46785399除以96431

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

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

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

4.用467853去減96431k(此例中k=4),得到的數字寫下面。

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

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

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

開平方根

[编辑]

用來開平方根的納皮爾的骨頭會用到第十根柱子,上有三個直排。第一排上有數字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 2
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是最大的:

 0/8 1/6 6/4 → 1024

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

  1 2 (value)
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 3 6
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 3 6  
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 3 6 6  
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只是答案的整數部分,的實際值應當比6839大,比6840小。如果有需要繼續做下去以得到小數部分的話,下一組的兩個數字就要用00:

  1 3 6 7 8
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

接著便可開平方。

参考文献

[编辑]
  1. ^ 吴文俊主编<《中国数学史大系》第七卷 156-158页