如何对一系列 double 进行求和并提高精度,同时保持 O(n) 的时间复杂度?请说明 Kahan 求和算法的原理。
考察说明
考察浮点求和误差来源、Kahan 求和算法的补偿机制与时间复杂度分析
回答思路
- 指出朴素求和在累加大量 double 时因舍入误差累积导致精度损失
- 解释 Kahan 求和通过补偿变量保存低位舍入误差以提高精度
- 说明算法仅为 O(n) 时间复杂度和 O(1) 额外空间
- 能给出 Kahan 求和的实现要点或伪代码
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。