python 求平方根

如果不调用库函数,可以用二分法或者牛顿法求平方根。

牛顿法

推导过程如下
python 求平方根_第1张图片

def solve(x,ratio):
    num=x
    while(True):
        num=(num+x/num)/2
        if(abs(x-num*num)<=ratio):
            break
    return num

二分法

def binary_search(x,ratio):
    l=0
    h=x
    while(l<=h):
        mid=l+(h-l)/2
        if(mid*mid>x):
            h=mid
        elif(x-mid*mid<=ratio):
            return mid
        else:
            l=mid

运行后,你会发现求出来的平方根不一样,因为实现方式不一样,确实会有所差别

你可能感兴趣的:(python,数据结构算法)