首页 > 后端开发 > Python教程 > 如何在 Python 中求整数平方根:哪种方法最好?

如何在 Python 中求整数平方根:哪种方法最好?

DDD
发布: 2024-10-28 06:03:32
原创
795 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板