传统算盘与珠算/根/平方根
设 为我们要获取平方根的数字 ;让我们考虑其十进制展开,例如:。让我们以以下方式将它的数字分成以小数点为中心的两组
或者换句话说,让我们定义整数序列
并从 递归地构建序列
并设 为 平方根的整数部分
例如, 是最大的整数,其平方不超过 。最后,我们将余数称为差值
对于我们的例子,我们有
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值可能是什么的猜测,但我们需要
- 验证这样得到的值是否正确,或者在适当的情况下,根据需要向上或向下修正它。
- 获得下一个余数,以准备计算根的下一个数字。
这两个步骤都需要从 或 和 中减去;检查我们是否不会得到负值,以及剩余部分是否小于(否则我们必须修正 上调或下调)。如果我们正确地执行了这个操作,我们剩下的是新的余数。需要注意的是,随着我们进行计算( 增加), 对除数 的贡献越来越小;因此,上面指出的过程将越来越像一个简单的除法。
这是高岛隆在第二本书《珠算进阶 - 理论与实践》[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 | 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 | 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]我们上面的例子...
算盘 | 注释 |
---|---|
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 开头的数字进行除法很麻烦。考虑一下前两位数字,它的值介于 1 和 99 之间,并决定了平方根的第一位数字。对于第一对的值介于 25 和 99 之间(75% 的情况),根的第一位数字介于 5 和 9 之间,它的两倍以 1 开头!因此,如果我们使用 准备除数 的方法,我们将用以 1 开头的数字进行除法,这种情况占 75% 。相反,如果我们使用 准备被除数 的方法,只有在第一组是 1、2 或 3 的情况下(3% 的情况),我们才需要用以 1 开头的数字进行除法。
半余数法 或 准备被除数 方法的优越性是毋庸置疑的。
参考资料
[edit | edit source]- ↑ Knott, Cargill G. (1886), "The Abacus, in its Historic and Scientific Aspects", Transactions of the Asiatic Society of Japan, 14: 18–73
- ↑ Kojima, Takashi (1963), Advanced Abacus: Theory and Practice, Tokyo: Charles E. Tuttle Co., Inc., ISBN 978-0-8048-0003-7
- ↑ 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]- Siqueira, Edvaldo; Heffelfinger, Totton. "Kato Fukutaro's Square Roots". 算盤 Abacus: Mystery of the Bead. Archived from the original on August 1, 2021.
{{cite web}}
: Unknown parameter|accesdate=
ignored (|access-date=
suggested) (help)
- Treadwell, Steve (2015). "Improvements to the Kato Method for Finding Square Roots" (PDF). 算盤 Abacus: Mystery of the Bead. Archived from the original (PDF) on August 1, 2021.
{{cite web}}
: Unknown parameter|accesdate=
ignored (|access-date=
suggested) (help) - 平方根 (半九九法);使用传统除法的传统方法 在 jccAbacus 中
外部资源
[edit | edit source]- 村上 使用 Kijoho 的平方根教程,这是一个 JavaScript 应用程序,您可以直接在浏览器中运行 或者从其GitHub 仓库 下载到您的电脑。您只需在左侧的小输入框中输入根,然后反复按下屏幕上的“下一步”按钮即可一步一步地查看该过程的进展。因此,您可以生成任意数量的示例或练习。