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

编写接收Pi、P*返回α的函数时sum函数使用问题求助

sum函数使用修正方案与函数实现

你当前的sum函数使用存在三处逻辑错误:

  • 求和遍历规则不符合绝大多数编程语言/工具的sum函数设计,无需手动指定i == 1, i == length(pstar)这类遍历条件,sum会自动累加传入的可迭代序列所有元素
  • 计算顺序错误:你现有逻辑是先求和x[i]再乘以(p-pstar)^2,而目标公式要求的是先计算每一组P_i与P*差值的平方,再对所有平方结果求和
  • 括号匹配存在语法错误,多了多余的右括号

目标计算公式为:
α = ( sqrt( (1/n) * Σ (P_i - P*)² ) / P* ) * 100
其中n为Pi序列的长度,要求和P*(pstar)的长度一致。

R语言实现

calculate_alpha <- function(Pi, pstar) {
  # 入参长度校验
  if (length(Pi) != length(pstar)) {
    stop("Pi和pstar的长度必须一致")
  }
  n <- length(Pi)
  # 先计算所有差值的平方,直接传入sum求和
  sum_squared <- sum((Pi - pstar)^2)
  alpha <- (sqrt(sum_squared / n) / pstar) * 100
  return(alpha)
}

Python实现

import math

def calculate_alpha(Pi: list, pstar: list):
    if len(Pi) != len(pstar):
        raise ValueError("Pi和pstar的长度必须一致")
    n = len(Pi)
    # 生成所有差值平方的迭代器,传入sum求和
    sum_squared = sum((pi - ps) ** 2 for pi, ps in zip(Pi, pstar))
    alpha = (math.sqrt(sum_squared / n) / pstar) * 100
    return alpha

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:54:05