在 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中文網其他相關文章!

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA

本文解釋了用於構建分佈式應用程序的Java的遠程方法調用(RMI)。 它詳細介紹了接口定義,實現,註冊表設置和客戶端調用,以解決網絡問題和安全性等挑戰。

本文詳細介紹了用於網絡通信的Java的套接字API,涵蓋了客戶服務器設置,數據處理和關鍵考慮因素,例如資源管理,錯誤處理和安全性。 它還探索了性能優化技術,我

本文詳細介紹了創建自定義Java網絡協議。 它涵蓋協議定義(數據結構,框架,錯誤處理,版本控制),實現(使用插座),數據序列化和最佳實踐(效率,安全性,維護


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

Atom編輯器mac版下載
最受歡迎的的開源編輯器