在 Java 中,可以使用 Math 類別中的 sqrt() 方法(如 Java 函式庫中的 Math.sqrt() )來計算數字的平方根。有多種方法可以求出數字的平方根。求數字平方根的標準或常規方法是長除法。然而,當數量很大並且需要大量時間來完成該過程時,該方法很難應用。這個問題也可以透過使用幾種可用數值方法中的牛頓拉夫森方法來解決,並且取決於性能和最佳化。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
平方根在 Java 中如何運作?
在 Java 中,可以使用基本迭代循環,使用如下所示的一系列步驟有效地計算數字的平方根。
- 求一個數的平方根所涉及的主要原理是高效且有效地進行乘法、除法、加法和減法等基本數學運算。
- 首先透過執行多個數學運算來操縱輸入數字,以確定近似的平方根值。
- 此處使用的方法中的輸入元素除以其實際數量的一半,並使用 while 循環或某種迭代循環不斷重複該過程,直到該數量與其一半值相等。
- 透過這種方式,或者說重複近似,可以非常準確地得到數字的平方根。
- 在下面的範例中,java中的do-while循環用於透過比較實際數字與其在while循環中的一半的差異來進行迭代。逼近邏輯在 do 區塊中執行。
- 最後經由上述計算得到高精度的近似平方根值,並傳回最終值。
- 程式的效率取決於用來求數字平方根的方法。使用多種數學或數值方法來找出數字的平方根,其中效率和準確性取決於所使用的方法及其複雜性。
- 演算法的效率也取決於輸入數字的大小。如果是一個非常大的數字,那麼程式的效能就會受到影響,需要重新考慮方法,一切都取決於需求和輸入。
- 這裡使用的輸入數字的平方根是double資料型,對於十進制數也可以計算平方根值。
在 Java 中實作平方根的範例
數字的平方根已使用Java程式語言實作如下,輸出程式碼已顯示在程式碼下方。
- 此處使用的方法輸入參數為 double 資料型,方法名稱為 findSquareRoot(),此方法傳回平方根值,傳回類型為 int 資料型別。
- 呼叫 findSquareRoot() 方法後,它首先建立一個新的臨時變數 num 來執行一些操作,然後建立另一個變數「half」將值除以一半並與原始值進行比較。
- 下一步有一個 do-while 循環,繼續逼近輸入值,直到獲得準確的值。
- 它們確實包含 num 變量,該變量被分配一個值作為輸入值,並且通過將 num 變量除以 value 變量並將該值添加到 half 變量並除以整個值,用新值覆蓋 half 變量。
- 在 while 區塊中,邏輯包含計算結果值近似值的半值與輸入值之間的差異,並將其值與「0」進行比較。
- dos 區塊中的這個過程會一直發生,直到 while 迴圈中的邏輯有效(即 true),透過使用否定運算子和賦值運算子(充當比較器)來評估變數的差異。
- 一旦 while 邏輯變成 false,findSquareRoot() 方法就會傳回 half 變數的值,並將結果賦值給變數來使用。
- 可以使用靜態或非靜態修飾符在任何地方呼叫相同的方法。在這個程式中,該方法被定義為靜態,因此它已在 main 方法中被呼叫。
- 整個功能和兩個方法都寫在 SquareRoot 類別中,它實際上封裝了平方根功能的行為。
- 輸入值可以按照 double 資料類型的最大容量傳遞,程式的複雜度再次取決於傳遞的輸入值。
Java 中數字平方根的程式碼實作
代碼:
public class SquareRoot {
public static void main(String[] args)
{
System.out.print(findSquareRoot(2));
}
/*
* Class to find square root of number
*/
public static double findSquareRoot(int value)
{
double num;
double half = (double) value / 2;
do {
num = half;
half = (num + (value / num)) / 2;
} while ((num - half) != 0);
return half;
}
}
輸出:
1.414213562373095
結論
上面實現的數字的平方根是一種有多種可能性的方法,並且可以根據輸入數字的要求和大小來接近任何方法。在繼續執行特定方法之前,必須分析程式的時間和空間複雜度。
以上是Java 中的平方根的詳細內容。更多資訊請關注PHP中文網其他相關文章!