开平方
) L3 L- G* C0 ]7 E. P" D; S例:(以20为例)
* { x7 @1 H8 B16=4*4 * J( l$ N9 t) w8 ~
设20=(4+x)^2
U% w/ l) D/ l! f/ `20=16+8x+x^2
+ d! j) \. I7 @% m2 l4 ], n2 a9 X因为x较小
) b3 `5 j: e* q$ @% q( D所以
8 N# r H" g* ~/ W20约等于16+8x
- X5 J3 V& s$ p- ~1 v8 a! sx约等于0.5 f& {8 W: Q, S; G
设20=(4.5+x)^2
7 x& H) F/ o7 w同理 " ?$ z. B6 G! U. T2 z/ i* k% k
x约等于-0.0277 : r) {4 R* E# X
............... 5 q2 a4 g3 Q1 Y, W7 x2 [. n. C
徒手开n次方根的方法: & U _% r! J8 s* M$ z' r* |
原理:设被开方数为X,开n次方,设前一步的根的结果为a,现在要试根的下一位,设为b, ; q) z7 J8 k2 |1 z/ W
则有 10*a+b)^n-(10*a)^n<=c(前一步的差与本段合成);且b取最大值 / P6 Q; ?4 q \5 h* E T% t
用纯文字描述比较困难,下面用实例说明:
, H. K- A# s- g; h- t我们求 2301781.9823406 的5次方根:
) O( g& \# Z5 B5 d' {7 Z第1步:将被开方的数以小数点为中心,向两边每隔n位分段(下面用'表示);不足部分在两端用0补齐; ' r8 i1 w! o* _7 w' O) d4 C# I
23'01781.98234'06000'00000'00000'.......... 5 L1 w3 r# m. D3 P7 W$ o4 c
从高位段向低位段逐段做如下工作:
/ q0 J. M5 Y$ A- [1 t" O! C初值a=0,差c=23(最高段) 3 C$ ^6 m @/ r# ?- {$ M
第2步:找b,条件 10*a+b)^n-(10*a)^n<=c,即b^5<=23,且为最大值;显然b=1 + d4 v2 ?& S8 F$ H. U2 ^9 k
差c=23-b^5=22,与下一段合成, N& F6 ?8 @# y
c=c*10^n+下一段=22*10^5+01781=2201781 & p$ p" j4 e- }' ~* S1 l
第3步:a=1(计算机语言赋值语句写作a=10*a+b),找下一个b, - X8 z: \, U+ d+ |7 q0 o
条件 10*a+b)^n-(10*a)^n<=c,即:(10+b)^5-10^5<=2201781,
; n9 Y5 ] a" {. t: m. nb取最大值8,差c=412213,与下一段合成,
; A% N- }7 ?9 ^5 B4 Jc=c*10^5+下一段=412213*10^5+98234=41221398234
0 Y* `6 t2 c" ` y8 u! b- ]0 ?& y第4步:a=18,找下一个b, , E* l- c1 f9 l' H- W0 U8 P
条件:(10*a+b)^n-(10*a)^n<=c,即:(180+b)^5-180^5<=41221398234, ; n( ?! {8 r# z, I( G6 | n
b取最大值7 0 k$ H/ u9 E0 \8 s' J
说明:这里可使用近似公式估算b的值: # F. E, L- ]( V( F- n' I0 L
当10*a>>b时,(10*a+b)^n-(10*a)^n≈n*(10*a)^(n-1)*b,即: ) b# j! }, @2 h5 |3 y% j
b≈41221398234/n/(10*a)^(n-1)=41221398234/5/180^4≈7.85,取b=7
0 L' \- r$ {# f" j5 r/ X5 }* x: ^以下各步都更加可以使用此近似公式估算b之值
; i9 O! c% T# N4 F+ ]差c=1508808527;与下一段合成, ) J" s! ?" W$ E p" V1 P9 {
c=c*10^5+下一段=1508808527*10^5+06000=150880852706000
2 t, s" b6 V6 t, m第5步:a=187,找下一个b, 8 t1 w1 S8 m B% c4 b* B/ D( E
条件:(10*a+b)^n-(10*a)^n<=c,即: $ e, O9 ?7 U9 W3 v/ y' [
(1870+b)^5-1870^5<=150880852706000,
/ V" e. n) e) |9 E: g- E2 pb取最大值2,差c=28335908584368;与下一段合成, 9 x6 L* \; a# O& S, R2 L; A) g
c=c*10^5+下一段=2833590858436800000
! c' V* |) _0 q$ c第6步:a=1872,找下一个b,
p7 E; {) j/ h条件:(10*a+b)^n-(10*a)^n<=c,即: $ V; n- k: A2 Q3 s: q) |
(18720+b)^5-18720^5<=2833590858436800000,
6 {6 W; d- E* U# b+ k7 cb取最大值4,差c=376399557145381376;与下一段合成, 3 i" H" s+ H1 B* p. f: u0 ]2 g
c=c*10^5+下一段=37639955714538137600000 |