美文网首页
牛顿迭代法——求x的平方根(简单)

牛顿迭代法——求x的平方根(简单)

作者: CoeusZ | 来源:发表于2019-01-27 13:36 被阅读0次

    求x的平方根(简单)

    题目

    实现int sqrt(int x)函数。
    计算并返回x的平方根,其中x 是非负整数。
    由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
    示例 1:

    输入:4
    输出:2
    

    示例 2:

    输入:8
    输出:2
    说明:8 的平方根是 2.82842...,      由于返回类型是整数,小数部分将被舍去。
    

    解题思路

    要求实现python的sqrt函数,此题考的肯定也不是用x**0.5这种方法...
    因此此题考的是牛顿迭代法来求根
    x_{n+1} = x_{n} - \frac{f({x_{n})}}{f^{'}(x_{n})}
    这是一种迭代方法,通过不断迭代直至收敛即可得到答案

    答案

    class Solution(object):
        def mySqrt(self, x):
            """
            :type x: int
            :rtype: int
            """
            if x <= 1:
                return x
            r = x
            while r > x / r:
                r = (r + x / r) // 2
    
            return r
    

    相关文章

      网友评论

          本文标题:牛顿迭代法——求x的平方根(简单)

          本文链接:https://www.haomeiwen.com/subject/wmbgjqtx.html