给定 double 类型的变量 $x$,且其值大于等于0,我们可以通过二分法求出 $\sqrt{x}$ 的近似值。
这题考的是实数域二分法求平方根。拿到题先想:平方根满足单调性,区间[0,x]上二分mid²与x比较,迭代到精度足够即可,无需库函数。
学生常把二分法只当成整数二分,误以为只能求整数根;或者看到‘近似值’就犹豫,其实命题人特意用‘近似’二字点明实数二分只能逼近。还有人会纠结浮点精度,以为必须设死1e-6,其实只要区间足够小或迭代次数固定都能收敛,关键是理解单调连续函数反函数的存在性。
【考点】实数域二分法|单调函数反函数求解|浮点近似思想
GESP 八级的算法基础里,二分法通常先学整数版(找第 k 小、判定区间)。这道题把场景推到实数域,考的是‘从离散到连续’的思维跃迁。命题人故意不说‘精确值’,而是‘近似值’,就是告诉你:在实数上二分只能逼近,但逼近到任意精度都是合法的。这恰恰是二分法最本质的特征——单调性 + 可计算中间值。