样本均值函数实现咨询:骰子模拟代码修改需求
解决骰子投掷均值计算的问题
嘿,这个需求很清晰,我来帮你把统计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的变量换成累加所有结果的总和变量
- 最后用总和除以投掷次数得到均值
修改后的代码:
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
相关产品推荐
相关产品推荐

