sqrtx(求平方根) 二分法和牛頓迭代法

2021-09-26 16:30:23 字數 644 閱讀 6153

實現函式 int sqrt(int x). 

計算並返回x的平方根

思路一:直接在1~x/2區間二分查詢乙個數字的平方即可。其實在1~x-1這個區間去二分也可以,但是

f(x)  = x/2 - x^(1/2) > 0 的,詳細可以求導證明。所以可以在1——x/2二分逼近x^(1/2)的值

class solution 

return left - 1;

}};

思路二: 牛頓迭代法。比如求a的平方根。設a的平方根是根號x,求a的平方根就是求x^2 -a = 0的解。

令f(x) - x^2- a。 牛頓迭代法就是給x1乙個初始值,然後通過

x2= x1- f(x1) / f'(x1)  這樣來不斷接近方程解。當x1,x2差值在乙個很小的範圍,比如10的-6次方可以認為得到方程的解了。

這裡就是x2 = x1 - (x^2 - a)/2x 整理就是x2 = (x1 + a/x) / 2;

class solution while(fabs(first - second) > 1e-6);//誤差<=1e-6就是找到解了

return (int)first;//開方得到的結果是整數,轉回整數

}};

二分法做平方根

注意這裡的浮點數 不然的話程式會報錯 coding utf 8 二分法計算20的平方根 import math a 0.0 多次二分後會變成二分法,所以要設定成浮點數,python裡就是直接賦值成浮點數 b c float raw input enter a number n 100 while t...

二分法求平方根(Python實現)

使用二分法 bisection method 求平方根。1 defsqrtbi x,epsilon 2assert x 0,x must be non nagtive,not str x 3assert epsilon 0,epsilon must be postive,not str epsilo...

Python用二分法求平方根

好了,正如標題所示,我們今天要用二分法來求平方根。首先要有數字,但是老是有人寫字串該怎麼辦呢?老是有人在寫數學題的時候打字串 try x int input please enter a whole number to measure to square root except print 然後是重...