古人如何开平方
2019-03-29◎吴琨
◎吴 琨
在金庸的武侠小说中,常常出现与中国古代数学有关的内容,比如在《射雕英雄传》之中就有这么一段情节:
黄蓉坐了片刻,精神稍复,见地下那些竹片都是长约四寸,阔约二分,知是计数用的算子。再看那些算子排成商、实、法、借算四行,暗点算子数目,知她正在计算五万五千二百二十五的平方根。这时“商”位上已记算到二百三十,但见那老妇拨弄算子,正待算那第三位数字。黄蓉脱口道:“五!二百三十五!”
那老妇吃了一惊,抬起头来,一双眸子精光闪闪,向黄蓉怒目而视,随即又低头拨弄算子。这一抬头,郭、黄二人见她容色清丽,不过四十左右年纪,想是思虑过度,是以鬓边早见华发。那女子搬弄了一会,果然算出是“五”,抬头又向黄蓉望了一眼,脸上惊讶的神色迅即消去,又见怒容,似乎是说:“原来是个小姑娘。你不过凑巧猜中,何足为奇?别在这里打扰我的正事。”顺手将“二百三十五”五字记在纸上,又计下一道算题。
这段故事当中,郭靖与黄蓉被铁掌帮追杀,郭、黄二人无意中闯到瑛姑的小屋中,正巧撞见瑛姑正在算这样一道开平方的问题。
那么小说当中,宋朝人用来计算平方根的方法是什么呢?我们今天就来介绍一下。
小说中所提到的这种计算平方根的方法叫做增乘开平方法,是由我国古代数学家贾宪在十一世纪中叶所提出来的,其方法与意大利数学家鲁裴尼和英国数学家霍纳所提出来的高次方程数值解法相同,但比他们早了750年。
那么增乘开平方法是如何来计算一个数的平方根的呢?我们就以小说中瑛姑所计算的求55225的平方根这个问题为例(为了便于理解,我们就直接用阿拉伯数字来表示):
首先我们把55225放入实这一行;
商实法借万 5千 5百 2十 2个 5
(1)由于55225是一个五位数,因此我们估算商应当是一个三位数,并且由于万位上的数是5,所以估计商的百位数是2(200的平方是40000,而300的平方是90000,所以商的百位数一定是2);
(2)令借为1,法的值则为借乘商(1×2);
商实法借万 5 2 1千 5百2 2十 2个 5
(3)更新实,使之为原实减去商乘法(5-2×2=1),则新实为1;
商实法借万 1 2 1千 5百2 2十 2个 5
(4)更新法为商乘借加到旧法上(2+2×1=4);
商实法借万 1 4 1千 5百2 2十 2个 5
(5)将法后移一位,借后移两位。
商实法借万 1千 5 4百2 2 1十 2个 5
然后我们再次重复(1)到(5)的循环:
(1)估算商的十位为3(3×4000=12000<15225);
商实法借万 1千 5 4百2 2 1十3 2个 5
(2)更新法,为原法加十位商乘借(4000+3×100=4300);
商实法借万 1千 5 4百2 2 3 1十3 2个 5
(3)更新实,使之为原实减去商乘法(15225-4300×3=2325),则新实为2325;
万 千商实法借2 4百2 3 3 1十3 2个 5
(4)更新法为商乘借加到旧法上(43+3×1=46);
万 千商实法借2 4百2 3 6 1十3 2个 5
(5)将法后移一位,借后移两位。
万 千商实法借2百2 3 4十3 2 6个 5 1
第二轮结束,第三轮开始,再一次重复这五个步骤:
(1)估算商的个位为5;
万 千2商实法借百2 3 4十3 2 6个5 5 1
(2)更新法,为原法加个位商乘借(460+5×1=465);
万 千商实法借2百2 3 4十3 2 6个5 5 5 1
(3)更新实,使之为原实减去商乘法(2325-465×5=0)。
万 千商实法借百2 4十3 6个5 0 5 1
到这一步我们惊喜地发现,实的值为0了,也就是说我们最后解出来了55225的平方根为235。
我们可以再验证一下,计算235的平方,发现235的平方果然是55225,也就是说我们的计算结果是正确的。
增乘开平方法其实一共就五个步骤:估算商,用商乘借加到法上,实减去商乘法,再用商乘借加到法上,法后移一位,借后移两位。然后只要不断地循环上述步骤,直到实为0,此时的商就是我们所求的平方根的值啦。