徒手开二次根号

抖音上看到的有趣解法(抖音号 huoxingketang)。只用纸笔,计算 $\sqrt{87}$ 的近似结果:

  • 找到最大的整数使其平方小于 $87$,这个数是 9
  • 计算 $87$ 与 $9^2$ 的差,结果为 6

$$
\sqrt{87} \approx 9 + \cfrac{6}{2 \times 9} = 9\frac{1}{3} \approx 9.333333
$$

用计算器算的结果 $\sqrt{87} \approx 9.32737905$。

这个解法用到的原理很简单。求 $\sqrt{x}$,设第一步找到的整数是 $a$,第二步算出的差为 $b$,则有

$$\begin{aligned} & x - a^2 = b \\[0.5em] \Rightarrow \quad & (\sqrt{x} + a)(\sqrt{x} - a) = b \\[0.5em] \Rightarrow \quad & \sqrt{x} - a = \frac{b}{\sqrt{x} + a} \\[0.5em] \Rightarrow \quad & \sqrt{x} = a + \frac{b}{a + \color{red}{\sqrt{x}}} \end{aligned}$$

其中 $\color{red}{\sqrt{x}}$ 可以被自己替换,搞出来连分式的形式:

$$
\sqrt{x} = a + \cfrac{b}{a + a + \cfrac{b}{a + a + \cfrac{b}{a + a + \cdots}}} = a + \cfrac{b}{2a + \color{blue}{\cfrac{b}{2a + \cfrac{b}{2a + \cdots}}}}
$$

注意到,我们选取的 $a$ 已经尽可能大了,这意味着 $b$ 会是一个比较小的数,所以省略上式中的蓝色部分,对整个分数值带来的误差会比较小,因为 $2a$ 比 $b$ 大的多,分数 $\cfrac{b}{2a}$ 是一个很小的数。例如

$$
\cfrac{5}{72} \approx 0.069\color{red}{444}
$$

$$
\cfrac{5}{72 + \cfrac{5}{72}} = \cfrac{360}{5189} \approx 0.069\color{red}{378}
$$

这就是在 $x$ 比较大时,$(a + \cfrac{b}{2a})$ 的值会非常接近 $\sqrt{x}$ 的原因。并且随着迭代次数的增多,结果的精度也会越高。

$$
\sqrt{87} \approx 9 + \cfrac{6}{18 + \cfrac{6}{18}} = 9\frac{18}{55} \approx 9.327273
$$

$$
\sqrt{87} \approx 9 + \cfrac{6}{18 + \cfrac{6}{18 + \cfrac{6}{18}}} = 9\frac{55}{168} \approx 9.327381
$$

$$
\sqrt{87} \approx 9 + \cfrac{6}{18 + \cfrac{6}{18 + \cfrac{6}{18 + \cfrac{6}{18}}}} = 9\frac{1008}{3079} \approx 9.327379
$$

$$
\sqrt{87} \approx 9.32737905
$$

注意到,对于像 $\sqrt{7}$ 这样比较小的数,运用此方法时需要多计算几层以保证准确,因为此时 $b$ 跟 $2a$ 的差距没有那么大,省略分母中的 $\cfrac{b}{2a}$ 会给结果带来较大误差。

$$
\sqrt{7} \approx 2 + \cfrac{3}{4 + \cfrac{3}{4}} = 2\frac{12}{19} \approx 2.631579
$$

$$
\sqrt{7} \approx 2 + \cfrac{3}{4 + \cfrac{3}{4 + \cfrac{3}{4 + \cfrac{3}{4}}}} = 2\frac{264}{409} \approx 2.645477
$$

或者更简单些,直接对 700 开方,再将得到的结果缩小 10 倍。

$$\begin{aligned} & \sqrt{700} \approx 26 + \cfrac{24}{52 + \cfrac{24}{52}} = 26\frac{156}{341} \approx 26.457478 \\[0.5em] \Rightarrow \quad & \sqrt{7} \approx 2.645748 \end{aligned}$$

用计算器算的结果 $\sqrt{7} \approx 2.64575131$。