求平方根的神级算法探究(1)

求平方根的神级算法探究(1)

求平方根,目前我所知的有两种算法,一是二分法,一是牛顿迭代法.
我们首先来研究下二分法.

1.我们要求什么?能得到什么?

我们要求某个未知数x的开平方,可知x(x>0),且x的平方根X0一定处于[0,x]之间.

2.通过计算中间值进行根的值的收敛

首先,计算[0,x]之间的中间值,即x/2,之后将x/2进行平方,再将平方后的数(假设为y)与你要求的x进行比较,如果y>x,那么可以确定x的开根号一定在范围[0,x/2]中,反之,则在范围[x/2 ,x]中,之后重复进行以上步骤即可.
举个栗子,
我要求9的开根号是多少.
首先,确定9开根号的范围-----[0,9],
接下来算中间值------4.5,
4.54.5=20.25
而20.25大于我们要开平方的值9,
可得9开根号的范围-----[0,4.5],
接下来算中间值------2.25,
2.25
2.25=5.0625,
而5.0625小于我们要开平方的值9,
可得9开根号的范围-----[2.25,4.5],
接下来算中间值------3.375,
3.3753.375=11.390625,
而11.390625大于我们要开平方的值9,
可得9开根号的范围-----[2.25,3.375],
接下来算中间值------2.8125,

我们可以看到,不断循环以上步骤,可以发现算出来的中间值是越来越接近9的开平方3的.
如果用代码表示的话,如下
function two(low,up){
const x=up;
const mid=low+(up-low)/2;
//条件为判断获取的到的值的精度是否有两位
while(mid
mid-x>0.001)
{
mid=low+(up-low)/2;
if(midmid>x){
up=mid
}
else if(mid
mid<x)
{
low=mid
}
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值