求乙個數的平方根。
要求:不使用系統函式,求出乙個數的平方根(要求誤差值在0.0001)。按照如下的演算法。
如果乙個數為x 假設它的平方根為y, 如果 y*y的結果和x相差大於0.0001,就繼續假設下乙個值。應該如何猜下乙個值呢?
用x除y的商結果z, 再求(y+z)的平均值作為新的平方根的猜測值。
示例如下,假設要求3的平方根,假設為1.5
x猜測平方根y
結果z下乙個猜測值
1.53/1.5=2
(1.5+2)=1.75
1.75
3/1.75=1.7143
這時1.7143*1.7143=2.9388和3的差距還有
3-2.9388=0.0612所以繼續這個猜測過程,直到差距在0.0001這個可接受的範圍為止。
這個演算法被稱為牛頓迭代法。
class mysqrt
return s;
} ///
/// 判斷是否符合要求的誤差範圍
///
///
平方根
///
目標數
///
假為合適的值,真為不合適
public static bool notfit(double num,double n)
return false; } }
求平方根函式
加一點注釋 unsigned short work unsigned int n 要進行開平方運算的物件 unsigned int ans 0 開平方運算的結果 unsigned int square 0 記錄中間產生的平方值 unsigned short r 0 程式最終的返回結果 for int...
牛頓拉弗森算平方根 c語言 計算平方根和牛頓迭代法
大一剛入學,有門課叫計算機引論,其實就是學點c語言,而不是介紹計算機。學校發的教材,艱澀難懂,後來我們班換成了譚浩強那本書。我記得書中介紹了牛頓迭代法求高次方程的根,但是我對這個知識點沒有興趣,也覺得不好理解,只是大概翻了翻。在讀研究生的時候,我去過北京師範大學東門的書店,看了看一本中學教材,介紹了...
自己寫平方根squareroot函式
今日做一面試題目,寫一平方根squareroot函式,函式介面為 unsigned int squareroot unsigned int input 不考慮float情況 經過思考,用位移的方法,乙個整數32bits,那麼平方根最多16bits,那麼對於這16個bits,從最大權重的bit開始,看...