筆算開方法

2022-07-17 04:03:11 字數 1588 閱讀 3136

筆算開方

筆算開平方法,用這個方法可以求出任何正數的算術平方根。

(並非是近似值,而是精確值)

原理:方法可簡記為——

二十倍初商加試商

預備:

下面具體來講一下計算步驟:

以小數點為起點,將被開方數的整數部分和小數部分分別以2位為一組分隔(整數從右往左分,小數從左往右分,不足則用0補齊),分成n段,則表明所求平方根是n位數

確定平方根的第一位:最大平方數。在不超過第一組數中取最大數x(1..9),將x作為除數和第一組的商,求出開方餘項(第一組餘數+第二組)

再求平方根第二位:假設第二位為a,取算式

估計出a的最大值(此為試商),使得

結果不大於開方餘項。新的除數與新商得出乘積,算出新的餘數

把下一組數補齊到新餘數後,重複步驟3

小數點對齊,運算至所需精度

這樣講述顯得蒼白無力(有乙個大概印象即可),我們直接看例子:

例如對105625進行開方:

首先對105625進行分段,從右往左每兩位數字分為1段,也就是10,56,25三段數字。先算出平方根的第一位數字,在平方不超過10的數字裡取最大的,比如1的平方為1,2的平方為4,3的平方為9,4的平方為16,16已經超過10了,1,2,3的平方都比10小,那平方根首位數字取3,因為 1,2,3當中3最大

10-3的平方=1,將被開方數第二段數字補上去,得到156。現在算平方根第二位數字。假設這第二位數字為a,取算式a*(20*3+a),式子中20是乙個固定不變的數(不論被開方數是多少)3就是剛剛計算出的平方根的首位數字。對a的值進行估計,使得 a*(20*3+a)不超過156。取a=1,a(20*3+a)=61,a=2時a(20*3+a)=124,a=3時 a*(20*3+a)=189,189已經超過156,所以a在1,2之間取值取最大的乙個數,也就是2,平方根的第二位數字就是2了

a(20*3+a)=124,62 乘以平方根第二位數字,也就是62*2=124,156-124=32,將被開方數第三段數字補上去,得到3225,與前面類似,取算式 b(20*32+b),式子中20還是固定不變的數字,32是剛剛算出的平方根的前兩位數字,對b取值,使得b(20*32+b)不超過3225,由計算 可知b=5,平方根第三位數字即為5

如果平方根還有第四位數字,或者更多,假設325後面還有第四位數字,算第四位數字時取算式 a(20*325+a),式子中的325即是已經算出的平方根的幾位數字,後面演算法都跟前面類似。對於被開方數是小數,分段時要注意,比如計算1.323 的平方根,它的小數字有3位,位數是奇數個,要補乙個0上去,即1.3230,然後從左往右每兩位數字分為一段。比如開方數是3.7478,小數字有4位數字,是偶數個位數,不用補0,可以直接分段,小數和整數的開方計算方法是一樣的。

練習:

筆算開n次方

在j2me中,有時會用到開方運算,但是midp1.0中沒有提供該功能。這裡使用筆算開方的方式,實現了開任意數的n次方。這裡使用了long作為運算的臨時變數型別,在數值較大或者保留位數太多的時候,會出現因為long數值溢位而導致的錯誤。public class extract else string ...

高精度開方

x的二分之一次方怎麼求?二分!首先求整數部分,從1到x二分答案,選擇最接近的那個 然後是求第一位小數部分,用高精度乘法模擬平方,看看得出的數是否比x大,或者比x小,從0到9不斷二分即可 然後是第二位小數.view code 1 include2 include 3 include4 using na...

開立方筆演算法

開立方筆演算法 陳梓瀚今年在某次物理競賽中忘了帶計算器,需要計算開立方。當時不知道怎麼筆算,所以只好一位一位地試。因此,我便想研究出一種開立方的筆算方法 我知道現在有,但是苦於找不到,所以只好自己來了 在剛開始研究是我不知道該如何入手,所以就去找了初二時候的代數書,裡面有開平方筆演算法和推導過程。它...