美文网首页
牛顿迭代法——求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