选自freecodecamp
作者:Alexander Arobelidze
机器之心编译
参与:郭元晨、杜伟
有时,在日常生活中,我们会遇到必须要计算平方根的任务。如果手边没有计算器或智能手机怎么办呢?我们是否可以借助传统的纸笔采用长除法来计算呢?是的,我们可以,而且方法多种多样。其中一些相对复杂,还有些可以提供更精确的结果。
本文作者想与大家分享的就是其中一种方法。为了让这篇文章对读者们更友好,以下每一步都带有插图注释。
本文作者 Alexander Arobelidze。
步骤 1:将数字拆分成对
首先,让我们组织一下工作区域,将空间分为三部分;然后,我们按照从右到左的顺序将数分为多个数字对。
例如,数字 7469.17 就变成了 74 69. 17。或者,若数字只包含奇数个数位,如 19036,则数字会变成 1 90 36。
在以上这个例子中,2025 变成了 20 25。
步骤 2:找到最大的整数
紧接着的一步中,我们需要找到一个最大的整数 (i),使得它的平方小于等于最左边的数字。
在这个例子中,最左边的数字是 20。因为 4² = 16 <= 20,并且 5² = 25 > 20,所以符合上述条件的整数是 4。让我们把 4 放入右上角,并把 4² = 16 放入右下角。
步骤 3:减去那个整数
现在我们需要从最左边的数字中减去那个整数的平方(等于 16)。差为 4,我们把它如上图形式写下来。
步骤 4:让我们来计算下一个数字对
接下来,我们转向下一个数字对的计算(25)。我们将其写在上一步的差(4)的旁边。
现在给右上角的数字(也是 4)乘以 2,结果是 8,我们将其写在右下角,并在后面跟上 _ x _ =。
步骤 5:找到合适的匹配
现在要将每一个空白处都填上同样的整数 (i)。该整数必须是使得乘积小于等于左边数字的最大整数。
例如,如果我们选择数字 6,那么第一个数字就是 86(8 和 6),同时我们必须给它乘以 6。乘积 516 大于了 425,所以我们需要减小到 5。数字 8 和 5 组合得到 85,85 乘以 5 等于 425,恰好是我们想要的。
在右上角的 4 旁边写上 5,这就是平方根的第二个数字。
步骤 6:再次相减
将我们计算出的乘积(425)从左边当前的数字中减掉。结果是 0,这意味着任务完成了。
注意:我刻意选择了一个平方数(2025 = 45 x 45),以此来展示求解平方根问题的各项规则。
现实中,数字往往由很多位组成,包括小数点后的位。这种情况下,我们需要重复步骤 4,5,6,直到达到我们想要的精确度。
下面一个例子解释了上述含义。
示例:让我们进行更深度的计算……
这次,我们选取的数字包含奇数个数位,且有小数部分。
正如我们在这个例子中看到的,该计算过程可以不断重复,以达到我们想要的精度。
,