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

关于生成N组10个随机评分集合并计算平均偏差之和的技术咨询

关于生成N组10个随机评分集合并计算平均偏差之和的技术咨询

嘿,我来帮你梳理这个需求并给出具体的实现方案!首先先明确咱们的评分规则和计算逻辑:

核心规则说明

  • 单条评分是整数,取值范围为 -5 到 +5,一共11种可能的评分值
  • 每组包含10条评分,计算该组的平均偏差需要分两步:
    1. 计算组内平均评分:把10条评分的总和除以10
    2. 计算平均偏差:将每条评分与组平均的绝对差相加,再除以10

需求目标

生成 N 组符合要求的10条评分集合,然后把每组的平均偏差累加起来,得到最终的总和。

具体实现示例(Python)

我先给你写个Python的实现,代码逻辑清晰,也容易修改:

import random

def calculate_average_deviation(rating_set):
    # 步骤1:计算当前组的平均评分
    avg_rating = sum(rating_set) / 10
    # 步骤2:计算所有评分与平均值的绝对差之和,再求平均得到平均偏差
    total_abs_diff = sum(abs(rating - avg_rating) for rating in rating_set)
    avg_deviation = total_abs_diff / 10
    return avg_deviation

def generate_single_rating_set():
    # 生成一组10个的随机评分,范围覆盖-5到+5(包含两端)
    return [random.randint(-5, 5) for _ in range(10)]

def compute_total_deviations(N):
    total_sum = 0.0
    for _ in range(N):
        current_set = generate_single_rating_set()
        total_sum += calculate_average_deviation(current_set)
    return total_sum

# 示例用法:生成100组并输出总和
number_of_sets = 100
final_total = compute_total_deviations(number_of_sets)
print(f"{number_of_sets}组评分的平均偏差总和为:{final_total:.4f}")

代码解释

  • generate_single_rating_set:专门负责生成单组符合要求的随机评分,用random.randint直接生成指定范围的整数
  • calculate_average_deviation:严格按照你给出的规则计算每组的平均偏差
  • compute_total_deviations:循环生成N组评分,累加每组的平均偏差得到最终总和

如果你需要固定随机序列(方便复现实验结果),可以在代码开头加上random.seed(42)这样的语句,固定随机数生成器的种子。

补充:JavaScript实现示例

如果需要在前端或者Node.js环境下实现,这里也给你一个JS版本:

// 生成一组10个随机评分
function generateRatingSet() {
    const ratingSet = [];
    for (let i = 0; i < 10; i++) {
        // 生成0-10的整数后减5,得到-5到+5的范围
        const rating = Math.floor(Math.random() * 11) - 5;
        ratingSet.push(rating);
    }
    return ratingSet;
}

// 计算单组的平均偏差
function calculateAverageDeviation(ratingSet) {
    const avgRating = ratingSet.reduce((sum, rating) => sum + rating, 0) / 10;
    const totalAbsDiff = ratingSet.reduce((sum, rating) => sum + Math.abs(rating - avgRating), 0);
    return totalAbsDiff / 10;
}

// 计算N组的平均偏差总和
function computeTotalDeviations(N) {
    let total = 0;
    for (let i = 0; i < N; i++) {
        const set = generateRatingSet();
        total += calculateAverageDeviation(set);
    }
    return total;
}

// 示例:生成100组并输出结果
const N = 100;
const result = computeTotalDeviations(N);
console.log(`${N}组评分的平均偏差总和为:${result.toFixed(4)}`);

备注:内容来源于stack exchange,提问作者BNB

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 10:37:59