You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

等差数列求和计算异常修复咨询:超大N值下结果偏差

等差数列求和代码的精度问题修复与原因解析

偏差原因

原代码使用了/浮点数除法,而Python的float属于双精度64位类型,仅能精确表示53位以内的整数(约对应十进制的16位数字)。当N超过10^15量级时,超大整数无法被浮点数精确存储,计算过程中会丢失低位精度,最终导致结果出现偏差(比如出现3584这类错误尾数值)。此外,代码中多余的*1000和/1000操作完全没必要,反而强制触发了整数到浮点数的转换,进一步放大了精度丢失问题。

修复方案

直接使用等差数列求和的精确整数运算公式,利用Python对任意大整数的原生支持,彻底避免浮点数参与计算:

N = int(input())
s = N * (N + 1) // 2
print(s % N)

核心说明:

  • 等差数列求和公式为S = N*(N+1)/2,由于N和N+1中必有一个是偶数,使用整数除法//可以保证结果完全精确,不会产生小数或精度损失。
  • Python的int类型支持任意长度的超大整数,即使N是10^100这样的天文数字,也能完成准确计算。

内容的提问来源于stack exchange,提问作者Zen4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 08:20:26