开平方
" p1 m& J2 ^, M; e7 q+ U: [例:(以20为例) ( I. h8 G1 ~, R! M p8 c+ v, E4 P
16=4*4
; Z4 ]9 a4 d) ?+ i2 Z3 w设20=(4+x)^2
; u% J2 V2 ^- Q20=16+8x+x^2 8 V: Y$ m( W4 d8 J! \4 O
因为x较小 - ^, Z: V1 s+ \+ i4 n& c
所以 2 J6 q: |* ~4 Y) C6 F- J1 l
20约等于16+8x
$ @: }4 `/ P/ t& E: r5 Mx约等于0.5
) \# e* ~5 V; L设20=(4.5+x)^2
- J' Y; z/ D; K2 w7 R& E3 m2 `同理
; z& F) ?9 J( w' z/ [$ d) Wx约等于-0.0277 & g7 H" y# n- r1 y0 E9 i
...............
/ J: n- z# l( N7 b& x+ D# n徒手开n次方根的方法: . k: F( n# ~( v' X
原理:设被开方数为X,开n次方,设前一步的根的结果为a,现在要试根的下一位,设为b, ( a. A$ T2 W3 I8 y
则有 10*a+b)^n-(10*a)^n<=c(前一步的差与本段合成);且b取最大值 ! e- d4 L% @& w' @
用纯文字描述比较困难,下面用实例说明: . W! ?2 |0 f% x* z# d) n
我们求 2301781.9823406 的5次方根:
) e; k5 C% O1 B9 T C* `第1步:将被开方的数以小数点为中心,向两边每隔n位分段(下面用'表示);不足部分在两端用0补齐; 2 b8 T3 o2 a! W3 J b
23'01781.98234'06000'00000'00000'..........
4 ^- m c, b$ I% h' V从高位段向低位段逐段做如下工作: 7 u0 ]3 a! f6 c4 o% V$ U) d+ `! P
初值a=0,差c=23(最高段) 5 ]( R8 v7 E& a" {' t! ?- d
第2步:找b,条件 10*a+b)^n-(10*a)^n<=c,即b^5<=23,且为最大值;显然b=1 8 `: q) S# B+ D6 }4 |3 g
差c=23-b^5=22,与下一段合成,
5 f) d- C, h6 i+ ^2 Lc=c*10^n+下一段=22*10^5+01781=2201781
1 \- f5 x* O$ q2 z9 O$ ?! E% f, b7 C0 M第3步:a=1(计算机语言赋值语句写作a=10*a+b),找下一个b,
/ q- t7 e4 N/ _$ U) p条件 10*a+b)^n-(10*a)^n<=c,即:(10+b)^5-10^5<=2201781, 7 Q8 F+ ?6 K" Z& h" ^0 ^6 v$ U. } J
b取最大值8,差c=412213,与下一段合成, % G0 [6 \ q/ M" ?5 G3 E
c=c*10^5+下一段=412213*10^5+98234=41221398234 & p O p1 k, O/ A: r
第4步:a=18,找下一个b,
; p( g& {* |* N+ W( i' `条件:(10*a+b)^n-(10*a)^n<=c,即:(180+b)^5-180^5<=41221398234, 1 E: j' |$ w ]9 Z6 p; c
b取最大值7 5 X& R7 @) U/ K. e# }2 ^
说明:这里可使用近似公式估算b的值:
) {: o N0 G; A$ }$ R8 w当10*a>>b时,(10*a+b)^n-(10*a)^n≈n*(10*a)^(n-1)*b,即:
D7 x* f2 c: ~7 T3 |$ W# Q& Ab≈41221398234/n/(10*a)^(n-1)=41221398234/5/180^4≈7.85,取b=7 4 |, F" _$ o( Z. [8 `8 k2 V
以下各步都更加可以使用此近似公式估算b之值
8 K6 i8 P/ f$ _# c# R9 }. K差c=1508808527;与下一段合成,
* y- ^ F# v5 v5 O8 Q" |c=c*10^5+下一段=1508808527*10^5+06000=150880852706000 ( r) [, N- s( h
第5步:a=187,找下一个b,
9 ~8 `% k, D2 s8 Z5 C( j: c条件:(10*a+b)^n-(10*a)^n<=c,即: - V) y' K$ a* Q
(1870+b)^5-1870^5<=150880852706000, 2 \0 M, Z2 \( F- n5 a
b取最大值2,差c=28335908584368;与下一段合成,
0 V6 e7 p+ k8 u6 x3 @# u7 \9 ^c=c*10^5+下一段=2833590858436800000 4 I# |4 W3 [1 Y/ B6 }! [- R
第6步:a=1872,找下一个b,
0 q! X' f+ n/ D0 w3 I1 \ ~' D条件:(10*a+b)^n-(10*a)^n<=c,即:
7 _1 Y' ]% C5 ]! t4 i3 E V(18720+b)^5-18720^5<=2833590858436800000,
# F( I6 j+ C3 b) pb取最大值4,差c=376399557145381376;与下一段合成, ' A- c6 U, m- z! o( l7 g, A
c=c*10^5+下一段=37639955714538137600000 |