跳转到内容

传统算盘与珠算/根/平方根

来自维基教科书,开放的书,开放的世界

为我们要获取平方根的数字 ;让我们考虑其十进制展开,例如:。让我们以以下方式将它的数字分成以小数点为中心的两组

或者换句话说,让我们定义整数序列

并从 递归地构建序列

并设 平方根的整数部分

例如, 是最大的整数,其平方不超过 。最后,我们将余数称为差值

对于我们的例子,我们有

0 0 0 0
1 4 4 2 0
2 56 456 21 15
3 78 45678 213 309
4 90 4567890 2137 1121
5 12 456789012 21372 26628

我们可以看到,根据构造, 随着 (每一步增加两位数字)增长,实际上序列 :(0, 400, 456, 456.78, 456.7890, 等等)趋于 。相比之下, 作为 平方根的整数部分,仅随着 (每一步增加一位数字)增长。由于 是平方不大于 的最大整数,我们有 如上,但是

根据 的定义,或者

乘以

但由于 仅以 的速度增长,第二项随着 趋于零。因此

并且 ,因此我们有

对于其他数字,上述因子为: ,其中 是小数点左侧两位数组的个数,如果后面跟着 00 组,则为负数(例如, 表示 表示 ,等等)。

这是传统手动开平方方法的基础。

过程

[edit | edit source]

我们从 开始。

第一位数字

[edit | edit source]
平方表
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81

对于 ,很容易找到 ,使其平方不超过 ,可以使用以下平方表,该表很容易记忆,因为它只是乘法表的子集。对于这个例子,我们发现

剩余的数字

[编辑 | 编辑源代码]

对于 ,我们有 如上所定义,我们尝试以以下方式构建

其中 是一个从 0 到 9 的一位整数。为了获得 ,我们必须从 0 到 9 中选择最大的数字,使得

或者

如果我们将 。展开二项式,我们有

或者

上述表达式的左侧可以看作是前一个余数加上下一个两位数的组合,最后一个项的括号可以看作是前一个根的两倍加上数字b。在我们的例子中,对于 ,我们有56在左侧,上述表达式是

这个表达式仅在 时成立,所以1是我们的下一个根的数字,但是,如何在一般情况下进行,而不必系统地探索每一种可能性()?

Knott[1]区分了两种不同的方法

  • 准备除数
  • 准备被除数。

准备除数

[edit | edit source]

这对应于上面的表达式

这是通常用纸笔使用的方法,当然也可以在算盘上实现。在上面的表达式中,如果我们将左侧视为被除数,括号视为除数,b就是除法的第一个数字

但由于我们还不知道b,我们只使用除数的主要部分来近似它

这给了我们一个关于b值可能是什么的猜测,但我们需要

  1. 验证这样得到的值是否正确,或者在适当的情况下,根据需要向上或向下修正它。
  2. 获得下一个余数,以准备计算根的下一个数字。

这两个步骤都需要从 中减去;检查我们是否不会得到负值,以及剩余部分是否小于(否则我们必须修正 上调或下调)。如果我们正确地执行了这个操作,我们剩下的是新的余数。需要注意的是,随着我们进行计算( 增加), 对除数 的贡献越来越小;因此,上面指出的过程将越来越像一个简单的除法。

这是高岛隆在第二本书《珠算进阶 - 理论与实践》[2] 中提出的方法,您可以在Totton Heffelfinger 的网站 http://totton.idirect.com/abacus/ 上的《Kojima 解平方根》[3] 中看到其描述,我建议读者参考这些资料以了解解释和示例。以下是我们的示例中计算可能开始的方式的简要说明:

纳皮尔的骨头 排列以帮助计算示例中的第三位根
的前三位数字,准备除数
算盘 注释
ABCDEFGHIJKLM
   4567890123 从 CD(第一组)开始输入被开方数
 2 第一位根在 B 中
  -4 从第一组中减去 B 的平方
 2  567890123 余数为零
 4  567890123 将 B 乘以 2。将下一组(56)追加到余数
 41 567890123 5/4≈1,尝试 1 作为下一位根
   -4 继续除以 41,从 EF 中减去 1✕41
    -1
 41 157890123 余数为 15
 42 157890123 将第二位根乘以 2
 42 157890123 追加下一组(78)
 423157890123 157/42≈3,尝试 3 作为下一位根
   -12 继续除以 423,从 E-H 中减去 3✕423
    -06
     -09
 423 30990123 余数为 309
 426 30990123 将第三位根乘以 2
 426 30990123 追加下一组(90)
    等等。


可以看到,根的两倍向算盘左侧增长,损害了被开方数/余数和未使用的两位数组。这与算盘上其他基本运算相反,在其他基本运算中,**求解的结果会取代操作数**(或其中一个操作数)。因此,传统上,求平方根的首选方法似乎是下面的方法,我们将在其中看到根直接出现在算盘上,而不是它的两倍。

准备被除数

[编辑 | 编辑源代码]

再次从

除以 2

修改后的表达式将使我们能够在算盘上直接得到平方根,其操作步骤与上面基本相同,只是在算盘上只保留一半余数。这里,对于平方根来说,变化几乎微不足道,但在处理立方根时将更加重要。如上式所示,忽略 项,我们可以通过简单地将扩展后的半余数 除以之前的根 (实际上是 )来获得 的估计值。之后,我们还需要

  1. 验证这样得到的值是否正确,或者在适当的情况下,根据需要向上或向下修正它。
  2. 获得下一个半余数,以便为根的下一位数字做准备。

这是通过从半余数中减去 来实现的,这使得记住以下半平方表非常方便

半平方表
1 0.5
2 2  
3 4.5
4 8  
5 12.5
6 18  
7 24.5
8 32  
9 40.5

幸运的是,由于 2 是我们基数(10)的约数,因此表中的十进制小数有一个有限表达式;而当我们试图将此过程扩展到立方根时,我们不得不处理立方体的三分之一,这种情况就不会发生。据 Knott 说,这使得立方根成为不适合用算盘处理的问题。

示例

[edit | edit source]

这里给出了三个示例,更多示例请参见下面的 进一步阅读,特别是 外部资源

961 的平方根

[edit | edit source]

在这个例子中,我们有两组两位数:09 和 61。第一组告诉我们根的第一位数字是 3。

有两种方法可以开始求平方根

  • 从算盘的 B 列开始,将各组数字对齐到算盘的左侧,并使用传统的除法来获得半余数。
A B C D E
...
0 9 6 1
这是旧书中使用的方法,也是村上在 用 kijohou 求平方根教程 中使用的方法(见下文 外部资源)。
使用传统的除法
算盘 注释
ABCDE
 0961 将被开方数与 B 对齐
30961 将根的第一位数字输入 A
 -9 减去根的第一位数字的平方(9)
30061
30305 将余数 B-E 除以 2(帰除法)
  • 从算盘的 A 列开始,将各组数字对齐到算盘的左侧,并使用 原位 除法,如第 除以二的幂 章所述,来获得半余数。
A B C D E
...
0 9 6 1
这种方法稍微快一些。
使用原位除法
算盘 注释
ABCDE
0961 将被开方数与 A 对齐
-9 减去根的第一位数字的平方(9)
0061
 0305 将余数原位除以 2
30305 将根的第一位数字输入 A

从这里开始,算盘的状态一致,我们可以继续

继续
算盘 注释
ABCDE
30305
+1 将半余数 B-E 除以 3。将 B 向上修正
 -3
31005
  -05 从 D 中减去 b^2/2 =0.5
31000 半余数为 0,完成!根为 31
31 根为 31

998001 的平方根

[edit | edit source]
算盘 注释
 ABCDEFG
 998001 输入被开方数
-81 从第一组中减去 9^2=81
 188001
  940005 将余数原位除以 2
 9940005 将根的第一位数字输入 A
 9930005 B:规则 9/9>9+9
  -405 从 D 中减去 9^2/2=40.5
 9989505
 9987505 C:规则 8/9>8+8
   -72 从 DE 中减去 CxB=72
 998T305 将 C 向上修正
  +1
   -99
 9990405
    -405 从 F 中减去 9^2/2=40.5
 9990000 余数为 0。完成!
 999 根为 999

456.7890123 的根

[edit | edit source]

我们上面的例子...

的前 4 位数字
算盘 注释
ABCDEFGHIJKL
04567890123 输入 x,将数字对从 AB、CD 等对齐。
-4 从第一组中减去 2^2
  567890123
  2839450615 将余数和其余数字对减半
2 2839450615 在 A 中输入第一个根数字
+1 用 A 除 BCD(向上修正 B)
 -2
  -05 从 D 中减去 B^2/2=0.5
21 789450615
 +3 用 AB 除 CDEF(向上修正 C 三次)
  -6
   -3
    -45 从 F 中减去 C^2/2=4.5
213154950615
213554950615 用 ABC 除 DEFGH。D:规则 1/2>5+0
    -5 从 EF 中减去 DxB=5
    -15 从 FG 中减去 DxC=15
213548450615
  +2 向上修正 D 两次
   -426
213705850615
     -245 从 H 中减去 7^2/2=24.5
21370560F615 到目前为止的根:21.37
    等等。     等等。


根 2137…(21.37…)出现在左侧。查看章节:简化运算 了解如何快速估算接下来的 4 位数字。

结论

[edit | edit source]

解释为:准备被除数 的方法被称为 半九九法(日语中称为 Hankukuhou,中文中称为 Bàn jiǔjiǔ fǎ),我们在此自由地将其翻译为 半余数法,它迄今为止是最方便使用的方法,至少有两个原因

  1. 根(而不是它的两倍)取代了操作数(被开方数),就像算盘上的其他运算一样。
  2. (最重要的是)用以 1 开头的数字进行除法很麻烦。考虑一下前两位数字,它的值介于 1 和 99 之间,并决定了平方根的第一位数字。对于第一对的值介于 25 和 99 之间(75% 的情况),根的第一位数字介于 5 和 9 之间,它的两倍以 1 开头!因此,如果我们使用 准备除数 的方法,我们将用以 1 开头的数字进行除法,这种情况占 75% 。相反,如果我们使用 准备被除数 的方法,只有在第一组是 1、2 或 3 的情况下(3% 的情况),我们才需要用以 1 开头的数字进行除法。

半余数法准备被除数 方法的优越性是毋庸置疑的。

参考资料

[edit | edit source]
  1. Knott, Cargill G. (1886), "The Abacus, in its Historic and Scientific Aspects", Transactions of the Asiatic Society of Japan, 14: 18–73
  2. Kojima, Takashi (1963), Advanced Abacus: Theory and Practice, Tokyo: Charles E. Tuttle Co., Inc., ISBN 978-0-8048-0003-7
  3. Heffelfinger, Totton (2003). "Square Roots as Solved by Kojima". 算盤 Abacus: Mystery of the Bead. Archived from the original on August 1, 2021. Retrieved August 16, 2021.

进一步阅读

[edit | edit source]

外部资源

[edit | edit source]
  • 村上 使用 Kijoho 的平方根教程,这是一个 JavaScript 应用程序,您可以直接在浏览器中运行 或者从其GitHub 仓库 下载到您的电脑。您只需在左侧的小输入框中输入根,然后反复按下屏幕上的“下一步”按钮即可一步一步地查看该过程的进展。因此,您可以生成任意数量的示例或练习。


下一页: 立方根 | 上一页: 
首页: 算盘与珠算/根
华夏公益教科书