GESP 八级 · GESP 202403 C++ 八级 第 25 题

判断题 · 答案 A · 考点:函数

← 整套速查表 GESP 八级 全部真题

题目

给定 double 类型的变量 x,且其值大于等于 1,我们可以通过二分法求出 $\log x$ 的近似值。

答案:A

考点

函数

解题思维

判断正误题需注意绝对化表述("一定""必须""只能"等)往往是错误的。

常见错误

判断题中注意"一定""总是""所有""唯一"等绝对化表述通常是错误的。但也要结合具体知识点判断。

详细解析(节选)

【考点】二分法|单调函数零点|浮点运算

🎯 考纲定位(考点定位) GESP 八级算法模块明确要求掌握二分法,但命题人刻意将"二分查找"从整数区间扩展到连续函数域。这道题卡住的是"算法边界"认知——多数考生只记得二分法用于有序数组,却忽略了它本质是寻找单调函数零点的通用工具。

🧠 解题思维(拆解与通法) 关键观察:$\log x$ 是方程 $e^y = x$ 的解。由于 $e^y$ 严格单调递增,二分法可求其零点。 设定下界 $L=0$(因 $x\ge1$ 时 $\log x\ge0$),上界 $R=\max(1.0,x)$(保证 $e^R\ge x$)。 循环条件为 $R-L>\epsilon$,每次取中点 $mid=(L+R)/2$:若 $e^{mid}<x$ 则 $L=mid$,否则 $R=mid$。 收敛后 $L$ 即为 $\log x$ 的近似值。这是"二分法求函数零点"的通法。

🪤 陷阱拆解(命题人的套路) 错误选项 B 利用"二分法仅用于数组"的思维定势,但命题人将二分推广到连续函数域。 最阴险的细节是上界设定:若写 $R=x$ 会因 $e^x$ 溢出导致错误,必须用 $R=\max(1.0,x)$ 确保 $e^R\ge x$。 若只背"二分查整数"结论,就会忽略 $e^y$ 的单调性,误以为 $\log$ 无法二分。

🔄 反命题思维(教练升华) 若将条件改为"$x<1$",下界需调整为 $L=-\max(1.0,-\log x)$,否则 $

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断