长除式演算法求开根号
以下這個演算法是根據:
2222(10 a + b ) = 100 a + 20ab + b= 100 a + (20 × a + b) × b 而生的。
2給y= (10 a + b ),我們想求得a;b, 在此我們先猜測a再由式子
2y - 100 a =(20 × a + b) × b
去求得b。
長除式演算法:
1. 將要開平方根的數從小數點分別向右及向左每兩個位一組分開,
如98765.432內 小數點前的65是一組, 87是一組, 9是一組, 小數點後的43是一組, 之
後是單獨一個2, 要補一個0 而得20是一組 。
也就是9,87,65.43,20。
以準確至2位小數為例子:
將 1 04.85 73 得四組, 順序為 1' 04. 85' 73'。
2. 將最左的一組的數減去最接近又少於它的平方數,並將該平方數的開方(應該是個位數)
記下 。
3. 將上一步所得之差乘100,和下一組數加起來。
4. 將記下的數乘20,然後將它加上某個個位數,再乘以該個個位數,令這個積不大於上一
步所得之差,將上一步所得之差減去所得之積。
5. 重覆第2步,直到找到
。
6. 可以在數字的最右補上多組的00'以求得理想的精確度為止 。
範例:求 (529)
1/2=? 2解法:將529分為兩組,分別為 5,29。
,529 先猜a 為2,因為2的平方為4比5小。 422529 = (20 + b)=400 + 2 × 20 × b +b 129
529 – 400 = ( 20 × 2 + b ) × b
129 =( 40 + b ) × b
故b = 3 。 2b
1/2因此 (529) = 23 ,529
4
1294bb
1
1/2範例:求 (1225)=?
解法:將1225分為兩組,分別為 12,25。
3先猜a 為3,因為3的平方為9比12小。
,1225221225 = (30 + b)=900 + 2 × 30 × b +b 9
1225 – 900 = ( 20 × 3 + b ) × b 253
325 =( 60 + b ) × b
故b = 5 。
因此 (1225)1/2 = 35 3b ,1225 9
2536bb
範例:求 (2209)1/2=?
解法:將2209分為兩組,分別為 22,09。4先猜a 為4,因為4的平方為16比22小。 ,2209222209 = (40 + b)16=1600 + 2 × 40 × b +b
0962209 – 1600 = ( 80 + b ) × b
609 =( 60 + b ) × b
故b = 7 。
因此 (2209)1/2 = 47
4b
, 2209
16
0968bb
2
1/2:求 (15129)=?
將15129分為三組,分別為 1,51,29。
先猜a 為1,因為1的平方為1最接近又少於1。
1
1,51,29 1
15
找b 使得( 20 + b ) × b接近51。 1b 1,51,29 1
152bb
我們取b 為2,( 20 + 2 ) × 2=44
12
1,51,29
1 15 22244
7將上一步所得之差乘100,和下一組數加起來。
12 1,51,29
1
15
44 297找c 使得( 20 ×12 + c ) × c接近729。
12 1,51,29 1
15
44
29724cc
我們取c 為3,( 20×12 + 3 ) × 3=729。
123 1,51,29 1
15
44
2972433
3
1/2求 (60025)=?
將60025分為三組,分別為 6,00,25。先猜a 為2,,因為2的平方為4最接近又少於6。
2
6,00,25 4 2
找b 使得( 40 + b ) × b接近200。
2
6,00,25
4
2004bb
我們取b 為4,( 40 + 4 ) × 4=176
24
6,00,25
4
200 444176
將上一步所得之差乘100,和下一組數加起來。 找c 使得( 20×24 + c ) × c接近2425。
24
6,00,25 4 200
176
我們取c 為5,( 485 + 5 ) × 5=2425。 48cc4225
2 4 5
6,00,25
4 2 00 1 76
24 25
48524 255
4
1/2求 (731)=?
.27037
7,31.00,00,002+24
47331 7329
540200000162095403379100337846954067
5