昨天下午三点二十,我在城南那家「拾页」旧书店的二楼翻到一本 1993 年印的《数学手册》,书脊用透明胶缠了两圈,翻开第 87 页,右上角有人用铅笔写了一个歪歪扭扭的 √√2,旁边一行小字:「这个到底怎么算?」字迹很轻,像是怕被人看见。我把书合上,付了十二块五,带回家。
于是整个下午,我都在回答这个陌生人的问题。
先把符号拆开
根号开根号,说到底就是嵌套平方根:√(√a),也可以写成 a 的四分之一次方。如果 a 是个完全四次方数,比如 16,那 √√16 = √4 = 2,干净得像刚擦过的窗玻璃。可惜真实世界里遇到的数大多不是这样,它们更像一团揉皱的纸,你得一点点抹平。所以问题的核心不在「算不算得出」,而在「用什么办法逼近,逼近得多快」。
我选了 √√2 做样本,因为它的值是 2^(1/4) ≈ 1.189207115,小数点后九位,足够看清一条路的样子。
办法一:把它变成连分数
第一个办法来自那本旧手册的邻页。把 √√2 记作 x,则 x⁴ = 2。反复开方之后,它会展开成一个连分数,形状像一段越走越窄的楼梯。我拿铅笔在纸边算:第一层给出 1.2,第二层 1.189,第三层 1.1892。写到第四层时,笔尖戳破了纸。这个方法不聪明,但它诚实——每一层都告诉你,误差还剩多少。
x = 1 + 1 / (1 + 1 / (1 + …)),收敛得很慢,但每一步都站得住
慢,其实是一种礼貌。它不骗你,也不跳过中间的路。
办法二:牛顿迭代,像推一把秋千
后来我换了工具。牛顿迭代的公式是 xₙ₊₁ = (xₙ + c / xₙ) / 2,开平方时 c 就是被开方数。要开根号的根号,只需开两次:先把 2 开成 1.414214,再开一次,得到 1.189207。我坐在书桌前用手机计算器验算,第一次输错,得到 1.1892;第二次多按一个零,变成 1.18921;第三次才对上。三次,一共十七秒,我却觉得自己像在推一架秋千,推一下,它荡得比刚才高一点,再推一下,就停在你要的那个高度附近。
这是我喜欢牛顿迭代的地方:它不是「求出答案」,它是「把答案擦干净」。
我不认为心算能力值得炫耀。真正值得记住的,是为什么这个迭代会收敛——以及收敛的前提条件,多数人从来不问。
我的观点,说清楚一点
说实话,我不同意「根号开根号没什么实际用处」这种说法。它当然没用——如果你只把它当一道题。但如果你把它当成一次练习:练习如何把一个陌生的符号拆成已知的两步,练习如何在误差里保持耐心,那它就有用,而且比很多「实用技能」更稳固。我甚至觉得,中学数学最大的遗憾不是太难,而是太快给出标准答案,快到没人有机会在草稿纸上戳破一个洞。
算错三次的那个下午,比算对的那三秒更值得留下。
如果你也想试
给你一个具体的动作:今晚找一张纸,写下 √√3,然后用两种办法各算到小数点后三位。连分数会慢,牛顿迭代会快,你会在中间某个瞬间忽然明白两者说的是同一件事。我推荐先做慢的那个,因为快的方法会掩盖理解。顺便说一句,这类「先慢后快」的练习,我在整理旧稿时也常遇到,比如 1-49其中合10 那篇里提到的小把戏,看起来简单,真要拆开,还是得一步步走。
还有一件事:那本手册的扉页盖着「城南中学图书馆」的章,编号 06831。我查了很久没查到它怎么流落到旧书店的。这大概是另一个需要开根号的问题——不是算数,是算缘分。就像我前几天在 帮我从19随机选两个数 里随手点出的两个数字,后来竟成了那天笔记的页码。