首頁  >  文章  >  後端開發  >  如何在 Python 中求整數平方根:哪一種方法最好?

如何在 Python 中求整數平方根:哪一種方法最好?

DDD
DDD原創
2024-10-28 06:03:32595瀏覽

How to Find Integer Square Roots in Python: Which Method is Best?

在 Python 中計算整數平方根

在 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>

此方法準確計算最大整數平方根,然後可以透過將其與自身相乘來驗證它是否與輸入數字匹配。

另一種方法是使用整數除法迭代檢查完美平方:

<code class="python">def isqrt2(n):
    i = 1
    while i * i <= n:
        i += 1
    return i - 1</code>

此方法結構較簡單,但對於大整數通常比牛頓法慢。

最後,對於 Python 3.8 及更高版本,math 模組提供了一個內建的 isqrt 函數,可以計算精確的高效求整數平方根。

<code class="python">from math import isqrt

x = isqrt(49)  # returns 7</code>

根據所需效率和Python版本選擇合適的方法,可以在各種場景下準確求整數平方根。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn