更新時(shí)間:2022-11-29 10:57:50 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽15032次
計(jì)算數(shù)字的平方非常簡(jiǎn)單。但是計(jì)算一個(gè)數(shù)的平方根更有趣一點(diǎn)。讓我們看看我們?nèi)绾巫龅竭@一點(diǎn)。
public static double sqrt(double number);
參數(shù):數(shù)字 返回:數(shù)字的平方根
number 參數(shù)接受double作為輸入,返回類(lèi)型也是double值。
所以,如果 number = 9 Math.sqrt(9) = 3.0
這是一個(gè)演示Math.sqrt()用法的片段
int X = 9;
double R = Math.sqrt(X);
System.out.println("The square root of " + X + " is " + R);
// The square root of 9 is 3.0
就像我們使用 Math.pow 求一個(gè)數(shù)的平方一樣,我們也可以用它來(lái)求一個(gè)數(shù)的平方根。
但是怎么辦?
記住數(shù)字平方根的表示方式: X^{1/2}X1 / 2; 這意味著一個(gè)數(shù)的平方根是 X 的 ½ 次方。
因此,如果我們將 Math.pow 中的指數(shù)值傳遞為0.50 。5個(gè)這是KaTeX parse error: Expected 'EOF', got '½' at position 1: ½?,結(jié)果數(shù)將是平方根。讓我們?cè)谙旅娴拇a片段中嘗試一下。
int X = 9;
double R = Math.pow(X, 0.5);
System.out.println("The square root of " + X + " is " + R);
// The square root of 9 is 3.0
整潔吧?同一個(gè)函數(shù)用于計(jì)算兩個(gè)不同的操作。
現(xiàn)在我們已經(jīng)了解了幾種使用 Java 中的內(nèi)置函數(shù)來(lái)求數(shù)字平方根的方法,讓我們看看不使用任何此類(lèi)內(nèi)置函數(shù)的方法。
讓我先提出一個(gè)算法,然后我們會(huì)一步一步地分解它。
從...開(kāi)始我 = 1一世=1個(gè), 如果我 * 我 == n一世*一世= =n,則 i 是 n 的平方根,因?yàn)?n 是一個(gè)完美的平方。
如果我 * 我 > ñ一世*一世>n,這意味著平方根必須介于(i-1, i)(我−1 ,我), 讓我們稱(chēng)他們?yōu)?低高)(低,_ _高)_ _ _.
在范圍內(nèi)應(yīng)用二進(jìn)制搜索(低高)(低,_ _高)_ _ _. 尋找中米_ _的(低高)(低,_ _高)_ _ _:
如果中 * 中 == n米_ _*米_ _= =n, 這意味著我們假設(shè)中米_ _是的平方根nn.
如果中 * 中 > n米_ _*米_ _>n,這意味著我們所做的假設(shè)是不正確的。這意味著,n 的平方根必須小于 mid,因?yàn)槿魏胃哂?mid 的值都不能滿(mǎn)足條件中 * 中 == n米_ _*米_ _= =n. 因此,我們將嘗試通過(guò)重復(fù)步驟 3 來(lái)找到 mid 左側(cè)的平方根(低,中)(低,_ _我d ) _.
否則,中 * 中 < n米_ _*米_ _
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743