快速计算平方根的公式:20m+n;
譬如求72162的平方根:
要从个位开始将它分块,每两位一块,颂棚即7,21,62这样分。
1、首先开始试商,从最高为试起,先来7,思考什么数的平方小于7,明显是2。然后用7减去2的平方,得出的数字3为余数,将要在下一步与后两位数字合起来用来进行下一步运算。
2、第二步,此时被除的变成了321,此时公式开始派上用场,上一步试出来的商2即为m,至于n是第二步要试的商,而除数就是公式20m+n,野模则切记商与除数的积不要大过被除数。
具体到刚才的数字,除数是321,而被除数则是20×2+n,即40几,要n×(20×2+n)小于等于321,最合适的就是n=6,即46×6=276,再用321减去276得出结果45用于第三步的试商。
3、第三步,也像第二步一样试商,只不过此时的被除数变成4562,除数m=20×26+n,n是第三步要试的商。由n×(20×26+n)小于等于4562得出第三步的试商n=8。
4、第四步开始棘手了,因为个位之前的已经试完了,此时,应从小数点之后的十分位开始,如一开始一样,每两位分成一块,这之后,就可以按前面的方法一直试下去了。
扩展资料:
末位是5的两位数的平方的码指算法:
后两位统一都是25
15的平方 1*2=2 15*15=225
25的平方 2*3=6 25*25=625
...
...
55的平方 5*6=30 55*55=3025
99的平方 9*10=90 95*95=9025
参考资料来源:百度百科-开平方运算
推荐于2017-11-26
(10a+b)^2 = 100a^2+20ab+b^2 = 100a^2+b(20a+b)
a代表的是已经计算出来的结果,b代表的是当前需要计算的位上的数。在每次计算过程中,100a^2都被减掉,剩下b(20a+b)。然后需要做的就是找到最大的整数b'使b'(20a+b')<=b(20a+b)。
因此,我就照着书里的方法,推导开立方笔算法。
(10a+b)^3 = 1000a^3+300a^2*b+30a*b^2+b^3 = 1000a^3+b[300a^2+b(30a+b)]
如果每次计算后都能减掉1000a^3的话,那么剩下的任务就是找到最大的整数b',使b'[300a^2+b'(30a+b')]<=b[300a^2+b(30a+b)]。
于是,我就设计了一个版式。下面就开始使用这个版式来检验开立方笔算法。
例如:147^3=3176523
一开始,如下图所示,将3176523从个位开始3位3位分开。(3'176'523)
第一步,我们知道,1^3 < 3 < 2^3,所以,第一位应该填1。
1^3 = 1,3 - 1 = 2,余2,再拖三位,一共是2176。
接下来这一步就比较复杂了。因为我水平有限,我现在还不能把它改造得比较好。
依照“b[300a^2+b(30a+b)]”,所以袭镇:
1^2*300=300,1*30=30,如图上所写。
第二位就填4,所以上图3个空位都填4。
然后(34*4+300)*4=1744,2176-1744=432,再拖三位得432523。
然后就照上面一样,
14^2*300=58800,14*30=420,如上图所写。
第三位就填7,所以上图下边3个空位都填7。
然后(427*7+58800)*7=432523,432523-432523=0,到此开立方结束。
在我以后的一些实践中,发现越往后开,300*a^2与b(30a+b)的差距就越大,寻找b的工作就越容易,因为结果中有一项是300*a^2*b。
徒手开n次方根的方法:
原理:设被开方数为X,开n次方,设前一步的根的结果为a,现在要试根的下一位,设为b,
则有:(10*a+b)^n-(10*a)^n<=c(前一步的差与本段合成);且b取最大值
用纯文字描述比较困难,下面用实例说明:
我们求 2301781.9823406 的5次方根:
第1步:将被开方的数以小数点为中心,向两边每隔n位分段(下面用'表示);不足部分在两端用0补齐;
23'01781.98234'06000'00000'00000'..........
从高位段向低位段逐段做如下工作:
初值a=0,差c=23(最高段)
第2步:找b,条件:(10*a+b)^n-(10*a)^n<=c,即b^5<=23,且为最大值;显然b=1
差c=23-b^5=22,与下一段合成,
c=c*10^n+下一段=22*10^5+01781=2201781
第3步:a=1(计算机语言赋值语句写作a=10*a+b),找下一个b,
条件:(10*a+b)^n-(10*a)^n<=c,即:(10+b)^5-10^5<=2201781,
b取最大值8,差c=412213,与下一段合成,
c=c*10^5+下一段=412213*10^5+98234=41221398234
第4步:a=18,找下一个b,
条件:(10*a+b)^n-(10*a)^n<=c,即:(180+b)^5-180^5<=41221398234,
b取最大值7
说明:这里可使用近似公式估算b的值:
当10*a>>b时滑禅神,(10*a+b)^n-(10*a)^n≈n*(10*a)^(n-1)*b,即:
b≈41221398234/n/(10*a)^(n-1)=41221398234/5/180^4≈7.85,取b=7
以下各步都更加可以使用此近似公式估算b之值
差c=1508808527;与下一段合成,
c=c*10^5+下一段=1508808527*10^5+06000=150880852706000
第5步:a=187,找下一个b,
条件:(10*a+b)^n-(10*a)^n<=c,即:
(1870+b)^5-1870^5<信亏=150880852706000,
b取最大值2,差c=28335908584368;与下一段合成,
c=c*10^5+下一段=2833590858436800000
第6步:a=1872,找下一个b,
条件:(10*a+b)^n-(10*a)^n<=c,即:
(18720+b)^5-18720^5<=2833590858436800000,
b取最大值4,差c=376399557145381376;与下一段合成,
c=c*10^5+下一段=37639955714538137600000
.............................
最后结果为:18.724......
以上是转贴一网站的内容,我自己前半部分有些明白,后半部分还不明白,但我可以确定以上的解答过程才是正确的,而绝不是一个数的3倍.
述求平方根的方法,称为笔算开平方法,用这个方法可以求出任何正数的算术平方根,它的计算步骤如下:
1.将被开方数的整数部分从个位起向左每隔两位划为一段,用撇号分开(竖式中的11'56),分成几段,表示所求平方根是几位数;
2.根据左边第一段里的数,求得平方根的最高位上的数(竖式中的3);
3.从第一段的数减去最高位上数的平方,在它们的差的右边写上第二段数组成第一个余数(竖式中的256);
4.把求得的最高位数乘以20去试除第一个余数,所得的最大整数作为试商(3×20除 256,所得的最大整数是 4,即试商是4);
5.用商的最高位数的20倍加上这个试商再乘以试商.如果所得的积小于或等于余数,试商就是平方根的第二位数;如果所得的积大于余数,就把试商减小再试(竖式中(20×3+4)×4=256,说明试商4就是平方根的第二位数);
6.用同样的方法,继续求平方根的其他各位上的数.
2013-09-17
立方根,就除以8,27等等
2013-09-17