思路1:採用
二分
的方式,上界初始化為數字本身,下界初始化為1,這樣用二分,判斷中間數字的平方和目標數字比較,再修改上界和下界,直到小於一定的閾值。
思路2:採用牛頓迭代法(數值分析中提到),採用微分的方式,從初始點開始,每次迭代,微分求解切線,然後求解切線和x軸的交點,再以這個交點作為起點,迭代進行。
比如求解24,那麼寫出函式:
f(x) = x^2 - 24
我們目標就是求解這個函式的根,函式一階導數是:
f'(x) = 2*x
起始點可以選擇x0 = 24,通過求解,可以得到下乙個迭代點的公式為:
x1 = -f(x0) / f'(x0) + x0
這樣迭代下去,直到最後小於一定的閾值。
#includeusing namespace std;
int main()
cout<= -e)
return mid;
if(mid*mid - number > e)
end = mid;
else
start = mid;
} return 0;
} // 牛頓法求解
double newton(double number)
return 0;
}
起乙個數的平方根 初學平方根
初中數學中,平方根是學生們首先接觸的根式,後面還有立方根,四次方根,五次方根,以及大學要用的n次方根。平方根和立方根是基礎,初中生要能正確理解方根的意義,能夠熟練說出乙個數的方根。今天,我主要想和大家先來認識一下平方根。什麼是平方根呢?這個概念與平方有關,我們知道一一 1 2 1,2 2 4,3 2...
Python求解平方根的方法
主要通過sicp的內容改寫而來。基於newton method求解平方根。如下 程式設計客棧 usr bin python def sqrt iter guess,x i程式設計客棧f good enough guess,x print guess else sqrt iter improve gu...
LintCode x的平方根
x的平方根 實現 int sqrt int n 函式,計算並返回 n 的平方根。樣例 sqrt 3 1 sqrt 4 2 sqrt 5 2 sqrt 10 3 挑戰 o log x solution 如果使用蠻力法來求解的話,肯定是會超時的。因此,我們需要使用牛頓迭代法來求解這問題 牛頓迭代法 對於...