如何在 Python 中求一個數的整數平方根?

Barbara Streisand
發布: 2024-10-31 13:12:47
原創
316 人瀏覽過

How to Find the Integer Square Root of a Number in Python?

在 Python 中求整數平方根

Python 提供了幾種計算數字平方根的方法。然而,這些方法都沒有直接傳回整數平方根,沒有近似值或異常。

如初始程式碼片段中建議的,一種方法是使用 math.sqrt() 函數並將結果四捨五入到最接近的整數。然而,這種方法對於大整數可能並不精確。

更準確的方法涉及使用牛頓法,這是一種用於尋找方程式根的迭代技術。以下 Python 函數實現整數平方根的牛頓法:

<code class="python">def isqrt(n):
    x = n
    y = (x + 1) // 2
    while y < x:
        x = y
        y = (x + n // x) // 2
    return x</code>
登入後複製

此函數初始化兩個變數 x 和 y,並迭代更新它們直到收斂。 x 表示整數平方根的最佳估計,而 y 是包含 x 值和 n 除以 x 的整數除法的更新估計。當 y 小於 x 時迭代停止,表示不需要進一步細化。

isqrt() 的回傳值是其平方不超過 n 的最大整數。若要驗證結果是否為精確的整數平方根,請將結果與其自身相乘並將其與 n 進行比較。請注意,此函數在設計上處理非完美平方,不會引發任何異常。

雖然存在其他幾種計算整數平方根的演算法,但牛頓法通常被認為提供了準確性、速度和簡單性的平衡。

以上是如何在 Python 中求一個數的整數平方根?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!