x的平方根(牛頓迭代法)

2021-10-02 13:05:52 字數 1324 閱讀 1429

實現 int sqrt(int x) 函式。

計算並返回 x 的平方根,其中 x 是非負整數。

由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。

示例 1:

輸入: 4

輸出: 2

示例 2:

輸入: 8

輸出: 2

說明: 8 的平方根是 2.82842…,

由於返回型別是整數,小數部分將被捨去。

牛頓迭代法:

γ (x

2)=0

\gamma(x^2)=0

γ(x2)=0f(

x)=x

2−nf(x)=x^2-n

f(x)=x

2−n求斜率:2x2x

2xx−(

x2−n

)/2x

=x/2

+n/2

xx-(x^2-n)/2x=x/2+n/2x

x−(x2−

n)/2

x=x/

2+n/

2xx n+

1=xn

/2+n

/2xn

x_=x_/2+n/2x_n

xn+1​=

xn​/

2+n/

2xn​

最後進行迭代;

遞迴解決:

class

solution

return

sqrt

(x,x);}

double

sqrt

(double x,

int n)

else}}

;

2、迭代法:

class

solution

int n = x;

double now =0;

double res =1;

while

(res!=now)

return

int(res);}

};

3、還可以用二分查詢:

class

solution

int l=

0,r=x;

int ans=-1

;while

(l<=r)

else

}return

int(ans);}

};

牛頓迭代法求平方根

sqrt 方法 public static double sqrt double c 什麼是牛頓迭代法 多數方程不存在求根公式,牛頓提出了一種用迭代來求方程近似根的方法。思路就是不斷取切線,用線性方程的根逼近非線性方程f x 0的根x 過程簡介 過點 xk,f xk 作函式的切線,切線方程是 切線與...

牛頓迭代法 求平方根

牛頓迭代法 求出根號a的近似值 首先隨便猜乙個近似值x,然後不斷令x等於x和a x的平均數,迭代個六七次後x的值就已經相當精確了。例如,我想求根號2等於多少。假如我猜測的結果為4,雖然錯的離譜,但你可以看到使用牛頓迭代法後這個值很快就趨近於根號2了 這種演算法的原理很簡單,我們僅僅是不斷用 x,f ...

牛頓迭代法求平方根

牛頓迭代法 newton s method 又稱為牛頓 拉夫遜 拉弗森 方法 newton raphson method 它是牛頓在17世紀提出的一種在實數域和複數域上近似求解方程的方法。多數方程不存在求根公式,因此求精確根非常困難,甚至不可能,從而尋找方程的近似根就顯得特別重要。方法使用函式f x...