巴比伦平方根方法背后的数学

我读了计算任何数字的平方根的方法,算法如下:

double findSquareRoot(int n) {

double x = n;

double y = 1;

double e = 0.00001;

while(x-y >= e) {

x = (x+y)/2;

y = n/x;

}

return x;

}

  1. 它如何计算平方根?我不了解其背后的数学原理。如何x=(x+y)/2 and y=n/x收敛到n的平方根。解释这个数学。

  2. 该算法的复杂性是什么?

回答:

很容易看出您是否进行了一些运行并打印了x和y的连续值。例如100:

50.5 1.9801980198019802

26.24009900990099 3.8109612300726345

15.025530119986813 6.655339226067038

10.840434673026925 9.224722348894286

10.032578510960604 9.96752728032478

10.000052895642693 9.999947104637101

10.000000000139897 9.999999999860103

见,诀窍是,如果x

的平方根n,那么它是高于或低于实际的根,并n/x始终是在另一侧上。所以,如果你计算的中点x,并n/x会在一定程度上更接近真正的根。

关于复杂性,它实际上是无限的,因为真正的根永远都不会到达。这就是为什么要使用e参数。

以上是 巴比伦平方根方法背后的数学 的全部内容, 来源链接: utcz.com/qa/430944.html

回到顶部