開平方
F. s: c7 J3 z; ?, a7 C9 r7 T例:(以20為例)
1 P6 x3 |3 Q; R( {/ z+ z16=4*4 1 c9 T; V' ^2 `5 q/ J* @# T
設20=(4+x)^2 , {2 V% h+ P6 G* P6 h
20=16+8x+x^2
6 J6 V) w3 w. Y8 [6 P因為x較小 1 C+ Y( _2 `, i2 j- @
所以
$ P6 }( W" _2 \20約等于16+8x
, ?; m; `9 `6 ^6 Ux約等于0.5
/ P% ]9 U* j4 T! @設20=(4.5+x)^2
4 }* f/ k2 P$ l同理 + S' d& G8 d# T, z' P! j, v" I
x約等于-0.0277 ; t) U3 p" v- D- [
...............
( `+ E. a q# D/ c' l3 q: n5 N徒手開n次方根的方法: . I q2 p7 J% I: h7 ~9 h' e
原理:設被開方數為X,開n次方,設前一步的根的結果為a,現在要試根的下一位,設為b,
3 a3 i1 t' ~- M0 N: a則有 10*a+b)^n-(10*a)^n<=c(前一步的差與本段合成);且b取最大值 ; p" N# M b V' w
用純文字描述比較困難,下面用實例說明: 8 q. v" ?- K5 u6 K
我們求 2301781.9823406 的5次方根: ( j8 U$ O- v/ u& \: [$ ?
第1步:將被開方的數以小數點為中心,向兩邊每隔n位分段(下面用'表示);不足部分在兩端用0補齊; . a* K5 `/ W; R' }# U- W1 E
23'01781.98234'06000'00000'00000'.......... ) } b# V8 i2 y! c2 d6 y# L
從高位段向低位段逐段做如下工作: 3 L& |" C8 |) A
初值a=0,差c=23(最高段)
/ x1 @$ c4 { c* P第2步:找b,條件 10*a+b)^n-(10*a)^n<=c,即b^5<=23,且為最大值;顯然b=1 " A9 P* _$ u) ~: b ]0 i
差c=23-b^5=22,與下一段合成,
# Y! H/ K3 z r& g6 f( n; p! |c=c*10^n+下一段=22*10^5+01781=2201781
4 v; r, @5 q, q( n* u9 |第3步:a=1(計算機語言賦值語句寫作a=10*a+b),找下一個b, 5 I" c/ V& D( K* F- A' N
條件 10*a+b)^n-(10*a)^n<=c,即:(10+b)^5-10^5<=2201781,
% O# d) e: \ z+ ^/ ^b取最大值8,差c=412213,與下一段合成,
7 q& z; C, Q6 E( J. F) z3 [. F/ ]c=c*10^5+下一段=412213*10^5+98234=41221398234
9 D; X1 P. T3 M& i4 U第4步:a=18,找下一個b, * L4 z& p# [" v$ E3 o* O
條件:(10*a+b)^n-(10*a)^n<=c,即:(180+b)^5-180^5<=41221398234,
0 v5 ^$ O6 n. l- kb取最大值7
% x& k, C0 C e( h# `說明:這里可使用近似公式估算b的值:
' T6 H) R0 r% T# r1 g2 x1 `3 h. _. A當10*a>>b時,(10*a+b)^n-(10*a)^n≈n*(10*a)^(n-1)*b,即: ! w7 ^9 o3 D6 o2 G
b≈41221398234/n/(10*a)^(n-1)=41221398234/5/180^4≈7.85,取b=7 ( U% x; }, P" @2 C
以下各步都更加可以使用此近似公式估算b之值 4 p! v% |' E2 g( N( { K: ?; M! _
差c=1508808527;與下一段合成,
* m: _* d: s' |' fc=c*10^5+下一段=1508808527*10^5+06000=150880852706000 3 R+ o2 e& \- l1 I7 j+ ?& D
第5步:a=187,找下一個b, ( M7 s* d. y# H* r7 N4 M; r
條件:(10*a+b)^n-(10*a)^n<=c,即: 8 S% t, J, \) X$ s5 h
(1870+b)^5-1870^5<=150880852706000,
) P2 u% ]% _9 @b取最大值2,差c=28335908584368;與下一段合成, 2 Q" S7 J5 G3 F9 l1 j$ b( `, ~
c=c*10^5+下一段=2833590858436800000
# U/ c' ]) r' ]# R3 [5 D- T第6步:a=1872,找下一個b,
8 [* v4 X' ~! V4 @+ V, ?5 b+ u+ E條件:(10*a+b)^n-(10*a)^n<=c,即:
( _5 ~, j7 I. e Z(18720+b)^5-18720^5<=2833590858436800000,
( c0 \$ L& e+ ? q; [" t2 M' Q' g( ?( M. {b取最大值4,差c=376399557145381376;與下一段合成, 7 a6 _7 i- M _/ B: q
c=c*10^5+下一段=37639955714538137600000 |