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