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

多轮试验下计算指定随机实验中有利结果的相对频率

计算该随机实验中有利结果的相对频率

首先先明确完整的实验流程(补全原描述中缺失的盒子2抽样规则,逻辑上与盒子1保持一致):

设有两个装有不同颜色球的盒子。盒子1包含2个蓝球和1个红球;盒子2包含2个蓝球、3个红球和1个白球。实验流程:生成一个[0,1]区间的均匀随机数,若随机数>0.5,从盒子1有放回抽取4个球;若随机数≤0.5,从盒子2有放回抽取4个球。我们需要计算多轮试验中「有利结果」的相对频率。

核心思路

相对频率的本质就是多轮试验中有利结果出现的次数 ÷ 总试验次数。当试验次数足够多时,这个频率会趋近于单次试验中有利结果发生的理论概率。

我们可以分两步走:

  1. 先计算单次试验中得到有利结果的理论概率(可选,但能帮你预判模拟结果)
  2. 通过代码模拟多轮试验,直接计算相对频率

第一步:计算理论概率(以「抽到至少1个红球」为例)

先明确两个盒子的抽球概率:

  • 盒子1:总3个球,红球概率1/3,蓝球概率2/3
  • 盒子2:总6个球,红球概率3/6=1/2,蓝球2/6=1/3,白球1/6

选盒子1时的有利概率

我们用「1 - 全非红球的概率」来简化计算:
P(盒1有利) = 1 - (2/3)^4 = 1 - 16/81 ≈ 0.8025

选盒子2时的有利概率

同理:
P(盒2有利) = 1 - (无红球的概率) = 1 - ( (2+1)/6 )^4 = 1 - (1/2)^4 = 15/16 = 0.9375

单次试验的总有利概率

因为选两个盒子的概率各是50%:
P(总有利) = 0.5 * 0.8025 + 0.5 * 0.9375 = 0.87


第二步:代码模拟多轮试验

用Python写个简单的模拟脚本,你可以根据实际需求修改「有利结果」的判断逻辑:

import random

def run_single_trial(favorable_check):
    # 随机选择盒子
    if random.uniform(0, 1) > 0.5:
        # 盒子1的球池
        box = ["蓝", "蓝", "红"]
    else:
        # 盒子2的球池
        box = ["蓝", "蓝", "红", "红", "红", "白"]
    
    # 有放回抽取4个球
    sample = [random.choice(box) for _ in range(4)]
    # 判断是否符合有利条件
    return favorable_check(sample)

# 自定义有利条件:这里是「样本中至少有1个红球」
def is_favorable(sample):
    return "红" in sample

# 模拟10000次试验
total_trials = 10000
favorable_count = 0

for _ in range(total_trials):
    if run_single_trial(is_favorable):
        favorable_count += 1

relative_frequency = favorable_count / total_trials
print(f"模拟{total_trials}次后,有利结果的相对频率为: {relative_frequency:.4f}")

代码说明

  • run_single_trial函数负责完成一次完整的实验流程:选盒子→抽样本→判断是否有利
  • is_favorable是自定义的有利条件函数,你可以轻松修改它,比如改成「恰好2个蓝球」:
    def is_favorable(sample):
        return sample.count("蓝") == 2
    
  • 试验次数越多,相对频率越接近我们之前计算的理论概率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:01:20