Python Tricks(二)—— 牛顿法求解平方根(最大整数)

来源:互联网 发布:魔仙晶石链淘宝 编辑:程序博客网 时间:2024/05/22 04:58

x=xf(x)f(x)

平方根的计算(二分逼近、牛顿拉普生法)

平方根

def newton_root(n):    x = n/2.    f = lambda x: x**2 - n    f_prime = lambda x: 2*x    while abs(f(x)) > 1e-4:        x -= f(x)/f_prime(x)                        % x = (x+n/x)/2    return x

(平方不超过该数的)最大整数

def newton_int_sqrt(n):    x0 = n    x1 = (n+1)/2    while x1 < x0:        x0 = x1        x1 = (x0+n/x0)/2    return x0
0 0
原创粉丝点击