一、序言
初中的时候数学老师教我们手动开平方,当时觉着很震惊,验证了好几遍,发现方法真的很牛!如今上了研究生,回想起以前手动开平方的方法都已经很模糊了,今天查了下百度,才发现,这个方法出自《九章算术》!原来中国几千年前就已经找到这种方法了!
二、手动开平方
九章算术上是如此描述的:
开方术曰:
置积为实。借一算。步之。超一等。议所得。以一乘所借一算为法。而以除。除已。倍法为定法。其复除。折法而下。复置借算步之如初。以复议一乘之。所得副。以加定法。以除。以所得副从定法。复除折下如前。
若开之不尽者为不可开,当以面命之。若实有分者,通分内子为定实。乃开之,讫,开其母报除。若母不可开者,又以母乘定实,乃开之,讫,令如母而一。
2.1 算法描述
1.将被开方数的整数部分从个位起向左每隔两位划为一段,用撇号分开,分成几段,表示所求平方根是几位数;小数部分从最高位向后两位一段隔开,段数以需要的精度+1为准。
2.根据左边第一段里的数,求得平方根的最高位上的数。
3.从第一段的数减去最高位上数的平方,在它们的差的右边写上第二段数组成第一个余数。
4.把第二步求得的最高位的数乘以20去试除第一个余数,所得的最大整数作为试商。
5.用第二步求得的的最高位数的20倍加上这个试商再乘以试商。如果所得的积小于或等于余数,试商就是平方根的第二位数;如果所得的积大于余数,就把试商减小再试,得到的第一个小于余数的试商作为平方根的第二个数。(即3为平方根的第二位。
6.用同样的方法,继续求平方根的其他各位上的数。用上一个余数减去上法中所求的积,与第三段数组成新的余数。这时再求试商,要用前面所得到的平方根的前两位数乘以20去试除新的余数,所得的最大整数为新的试商。。
7.对新试商的检验如前法。
2.2 举例:
1.从个位数向左每两位分成一段。
2.最高位为10,取平方数不大于10的数,即3
3. 10 - 3^2 = 1,余1
4. 3*20 = 60,试商 134/60 = 2
5,134 / (60+2) = 2,余10,小于62,所以确定 第二位是2
6. 32*20 = 640,试商 1026 / 640 = 1
7, 1026/(640+1) = 1,余385 ,所以确定第三位是1
8,依次循环第4-7步,计算下一位,直到余数为0
三、手动开立方:
九章算术描述如下:
《九章算术》少广章:
第一九题:今有积一百八十六万八百六十七尺。问为立方几何?
答曰:一百二十三尺。
开立方术曰:
置积为实。借一算步之,超二等。议所得,以再乘所借一算为法 ,而除之。除已,三之为定法。复除,折而下。以三乘所得数置中行。复借一算置下行。步之 ,中超一,下超二等。复置议,以一乘中,再乘下,皆副以加定法。以定法除。除已,倍下、 并中从定法。复除,折下如前。
开之不尽者,亦为不可开。若积有分者,通分内子为定实。定 实乃开之,讫,开其母以报除。若母不可开者,又以母再乘定实,乃开之。讫,令如母而一。
3.1 算法描述
1.将被开立方数的整数部分从个位起向左每三位分为一组;
2.根据最左边一组,求得立方根的最高位数;
3.用第一组数减去立方根最高位数的立方,在其右边写上第二组数;
4.用求得的最高位数的平方的300倍试除上述余数,得出试商;
5.把求得的最高位数的平方的300倍与试商的积、求得的最高位数的30倍与试商的平方的积和试商的立方写在竖式左边,观察其和是否大于余数,若大于,就减小试商再试,若不大于,试商就是立方根的第二位数;
6.用同样的方法,继续求立方根的其他各位上的数。对新试商的检验亦如前法。
3.2 举例