更新時間:2022-11-29 10:57:50 來源:動力節(jié)點 瀏覽15461次
計算數(shù)字的平方非常簡單。但是計算一個數(shù)的平方根更有趣一點。讓我們看看我們?nèi)绾巫龅竭@一點。
public static double sqrt(double number);
參數(shù):數(shù)字 返回:數(shù)字的平方根
number 參數(shù)接受double作為輸入,返回類型也是double值。
所以,如果 number = 9 Math.sqrt(9) = 3.0
這是一個演示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 求一個數(shù)的平方一樣,我們也可以用它來求一個數(shù)的平方根。
但是怎么辦?
記住數(shù)字平方根的表示方式: X^{1/2}X1 / 2; 這意味著一個數(shù)的平方根是 X 的 ½ 次方。
因此,如果我們將 Math.pow 中的指數(shù)值傳遞為0.50 。5個這是KaTeX parse error: Expected 'EOF', got '½' at position 1: ½?,結(jié)果數(shù)將是平方根。讓我們在下面的代碼片段中嘗試一下。
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
整潔吧?同一個函數(shù)用于計算兩個不同的操作。
現(xiàn)在我們已經(jīng)了解了幾種使用 Java 中的內(nèi)置函數(shù)來求數(shù)字平方根的方法,讓我們看看不使用任何此類內(nèi)置函數(shù)的方法。
讓我先提出一個算法,然后我們會一步一步地分解它。
從...開始我 = 1一世=1個, 如果我 * 我 == n一世*一世= =n,則 i 是 n 的平方根,因為 n 是一個完美的平方。
如果我 * 我 > ñ一世*一世>n,這意味著平方根必須介于(i-1, i)(我−1 ,我), 讓我們稱他們?yōu)?低高)(低,_ _高)_ _ _.
在范圍內(nèi)應(yīng)用二進制搜索(低高)(低,_ _高)_ _ _. 尋找中米_ _的(低高)(低,_ _高)_ _ _:
如果中 * 中 == n米_ _*米_ _= =n, 這意味著我們假設(shè)中米_ _是的平方根nn.
如果中 * 中 > n米_ _*米_ _>n,這意味著我們所做的假設(shè)是不正確的。這意味著,n 的平方根必須小于 mid,因為任何高于 mid 的值都不能滿足條件中 * 中 == n米_ _*米_ _= =n. 因此,我們將嘗試通過重復(fù)步驟 3 來找到 mid 左側(cè)的平方根(低,中)(低,_ _我d ) _.
否則,中 * 中 < n米_ _*米_ _
相關(guān)閱讀