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

Python计算级数Sn=1/n+2/(n-1)+…+n的代码错误排查

现有代码存在的问题
  • 初始值设置不合理:累加变量soma初始化为1无逻辑依据,通用场景下累加变量初始值应设为0,仅在n=2的测试场景下巧合匹配了结果预期。
  • 通项计算逻辑错误:原级数的通项为i/(n - i +1)(i为分子,从1到n递增),原代码中i/n + i/(n-1)的写法完全不符合级数规则,额外累加了大量无关项。
  • 分支判断导致漏项:if n > i的判断会跳过i=n的迭代,直接遗漏了级数最后一项n/1的计算。
  • 代码通用性差:n值写死为2,且无结果输出逻辑,无法适配不同输入的计算需求。
正确实现方案

根据级数规则,遍历分子i从1到n,每一项的分母为n - i + 1,累加所有项即可得到正确结果:

def calculate_sn(n):
    sn = 0.0
    for i in range(1, n + 1):
        denominator = n - i + 1
        sn += i / denominator
    return sn

# 测试示例
if __name__ == "__main__":
    print(calculate_sn(2))  # 输出2.5,对应1/2 + 2/1
    print(calculate_sn(3))  # 输出约4.3333,对应1/3 + 2/2 + 3/1

也可以用生成器表达式简化写法:

def calculate_sn(n):
    return sum(i / (n - i + 1) for i in range(1, n + 1))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:18:03