1.怎样笔算平方根,立方根笔算开立方(转贴): 今年在某次物理竞赛中忘了带计算器,需要计算开立方 。
当时不知道怎么笔算,所以只好一位一位地试 。因此,我便想研究出一种开立方的笔算方法(我知道现在有,但是苦于找不到,所以只好自己来了) 。
在刚开始研究是我不知道该如何入手,所以就去找了初二时候的代数书,里面有开平方笔算法和推导过程 。它是这么写的: 在这里,我“定义”a^b=a的b次方 。
(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