您好,欢迎来到华拓网。
搜索
您的当前位置:首页牛顿迭代法计算平方根(Java,Python实现)

牛顿迭代法计算平方根(Java,Python实现)

来源:华拓网

数学推导

假设c为原数,t为c的根数。

$$ t^2 \quad = \quad c$$
$$2t^2 \quad = \quad c + \quad t^2$$
$$2t \quad = \quad \frac{c}{t}+ \quad t$$
$$t \quad = \quad \frac{\frac{c}{t} + t}{2.0}$$

Java代码实现

package test;

import java.io.IOException;
import java.util.Scanner;

public class QuickFindUF {
    public static double sqrt (double c){
        if(c<0)
            return Double.NaN;
        double err = 1e-15;
        double t = c;
        while(Math.abs(t-c/t)>err)
            t = (c/t+t)/2.0;
        return t;
    }
    public static void main(String args[]) throws IOException{
        Scanner sc = new Scanner(System.in);
        double a = sqrt(sc.nextDouble());       
        System.out.println(a);
    }
}

Python代码实现

c = input()
err = 1e-15
t = c
while abs(t - c/t)>err:
    t = (c/t+t)/2.0
print(t)

Python代码真心简洁啊

Copyright © 2019- huatuo3.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务