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

Python如何统计随机序列数字抽取情况 模拟12个数字全抽取所需次数

Python实现代码及说明

核心逻辑

这是典型的「优惠券收集问题」模拟,核心逻辑是利用集合自动去重的特性,判断是否已经收集到全部12个数字,单次试验收集完成后记录抽取次数,重复1000次即可得到最终的统计结果列表。

完整实现代码

import random

# 初始化存储1000次试验结果的列表
result = []
# 待抽取的0-11数字列表
nums = list(range(12))

for _ in range(1000):
    collected = set()
    draw_count = 0
    # 持续抽取直到集齐12个数字
    while len(collected) < 12:
        draw_num = random.choice(nums)
        collected.add(draw_num)
        draw_count += 1
    # 存入本次试验的抽取总次数
    result.append(draw_count)

代码说明

  • 依赖仅为Python标准库random,无需额外安装第三方包
  • 用集合collected存储已抽到的数字,自动过滤重复抽取的结果,只需判断集合长度是否为12即可确认是否收集完成
  • 最终result列表就是1000次试验的统计结果,按顺序存储了每次试验所需的抽取总次数
  • 若要验证结果合理性,可计算结果平均值:12个元素的优惠券收集问题理论期望抽取次数约为37次,1000次模拟的平均结果会在37附近浮动

内容的提问来源于stack exchange,提问作者周鼎杰

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:24:07