實現函式 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 然後是重...