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

样本均值函数实现咨询:骰子模拟代码修改需求

解决骰子投掷均值计算的问题

嘿,这个需求很清晰,我来帮你把统计1的总和改成计算投掷均值~其实样本均值的逻辑超简单,就是所有投掷结果的总和除以投掷的总次数,咱们一步步来改代码就行!

核心逻辑说明

样本均值的计算公式非常直观:

均值 = 所有投掷结果的累加总和 ÷ 投掷的总次数

不需要复杂的函数,只要在投掷过程中记录总和(或者所有结果),最后做个除法就能得到结果。

示例代码修改(以Python为例)

先假设你原来统计1的总和的代码大概是这样:

import random

def roll_dice(num_rolls):
    count_ones = 0
    for _ in range(num_rolls):
        result = random.randint(1, 6)
        if result == 1:
            count_ones += 1
    return count_ones

# 调用示例
total_ones = roll_dice(100)
print(f"投掷100次后1的总和是: {total_ones}")

现在修改成计算均值的版本,只需要调整两个关键点:

  1. 把统计1的变量换成累加所有结果的总和变量
  2. 最后用总和除以投掷次数得到均值

修改后的代码:

import random

def roll_dice_mean(num_rolls):
    total_sum = 0
    for _ in range(num_rolls):
        result = random.randint(1, 6)
        total_sum += result  # 累加每次的投掷结果
    # 计算均值,用浮点数除法保证结果是小数
    mean = total_sum / num_rolls
    return mean

# 调用示例
average = roll_dice_mean(100)
print(f"投掷100次的均值是: {average:.2f}")  # 保留两位小数输出

如果你想同时保留所有投掷的结果(方便后续分析),也可以用列表存储结果后再计算:

import random

def roll_dice_mean(num_rolls):
    results = []
    for _ in range(num_rolls):
        result = random.randint(1, 6)
        results.append(result)
    # 用sum()计算总和,len()获取次数
    mean = sum(results) / len(results)
    return mean, results  # 同时返回均值和所有结果

# 调用示例
average, all_results = roll_dice_mean(100)
print(f"投掷100次的均值是: {average:.2f}")
print(f"所有投掷结果: {all_results}")

其他语言的类似实现(以JavaScript为例)

如果你用的是其他语言,逻辑完全一致,比如JavaScript版本:

function rollDiceMean(numRolls) {
    let totalSum = 0;
    for (let i = 0; i < numRolls; i++) {
        // 生成1-6的随机数
        const result = Math.floor(Math.random() * 6) + 1;
        totalSum += result;
    }
    return totalSum / numRolls;
}

// 调用示例
const average = rollDiceMean(100);
console.log(`投掷100次的均值是: ${average.toFixed(2)}`);

这样改完之后,就能轻松得到每次投掷的样本均值啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:36:17