java - 使用级数确定 double 的平方根

标签 java math series square-root

问题:

Using the following approximate formula, write a function or method that returns the square root of a real number! Use the sequence x[k + 1] = 1/2 * (x[k] + a / x[k]), which is converges to a square root of 'a' real parameter if x1 = 1.

我的解决方案类似,但没有使用这个公式:

public static double squareRoot(double a) {

    double k; 
    double root = a / 2;
    do {
        k = root;
        root = 0.5*(k+ (a / k));
    } while ((k - root) != 0);

    return root;`
}

最佳答案

该算法被称为 Babylonian method 。它对于任何正初始值都会收敛,因此您的代码是正确的。

但是,一旦连续值之间的绝对差小于一个小值(例如 1e-10),您就应该立即返回,以确保代码结束。否则有无限循环的风险。

关于java - 使用级数确定 double 的平方根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60137602/

相关文章:

java - 如何使用Java防止XSS攻击或Rest API JSON中的不可信数据?

java - 如何通知另一个线程

java - 通过二叉搜索树中单词计数的降序打印单词计数器

python - pandas.Series.explode 抛出 AttributeError

java - 最小化应用程序android

java - 如何确定属于空间中两条不相交线之间距离的点

JavaScript Number 分割成单个数字

javascript - 如何绘制隐式函数?

pandas - 如何获取列值以 2 或 3 位数字和英寸符号 (") 开头的行

python - Pandas 系列中的真假条纹