前言
二分法是一种非常基础经典的算法,让我们一起回顾一下。
# #包含iostream
双精度序列(双精度)。
{
双精度;
双l=0;
双精度r=数字;
wile(r-l1e-7 ) )//设定结果精度
mid=(rL )/2.0;
双tmp=mid * mid;
if(tmpnumber ) {
r=mid;
} else {
l=mid;
}
}
返回中间件;
}
int主() )
{
std:cout '根编号2的结果为' calcsqrt(2.0 ) std:endl;
std:cin.get (;
}程序的执行结果如下。
解释
首先,计算机解数学题时,只要没有明确的整数解,一般只能求近似解
解根号2时,不知道具体结果是多少,但可以肯定的是这个值在0和2之间,而且这个解是唯一的。 因此,如果尝试缩小该区间直到该区间的长度变得非常小(小于0.0000001 ),则可以认为该区间的所有数量都是根编号2的解;