求掷骰子集齐6面所需平均试验次数的Python伪代码编写求助
计算集齐6面骰子的平均掷骰次数伪代码
核心思路
- 重复执行10000次独立实验
- 单次实验内,持续掷6面骰子,直到掷出的点数覆盖1到6所有数字
- 统计每次实验的掷骰次数,最后计算所有次数的平均值
伪代码实现
初始化总次数 total_rolls = 0 初始化实验次数 experiments = 10000 for 从1到experiments的每个实验: 创建空集合 collected_faces 初始化单次实验掷骰次数 roll_count = 0 while 集合collected_faces的长度 < 6: 随机生成1-6之间的整数(模拟掷骰子) 将该整数添加到collected_faces中 roll_count += 1 将roll_count加到total_rolls中 计算平均值 average_rolls = total_rolls / experiments 输出average_rolls
关键逻辑说明
- 用集合
collected_faces存储已掷出的点数:集合的特性是自动去重,同一个点数重复掷出不会重复存储 - 判断条件
集合长度 < 6:当集合长度等于6时,说明1到6的点数都已被收集,停止当前实验 - 每次实验结束后,把该次的掷骰次数累加到总次数,最后除以实验次数得到平均值
内容的提问来源于stack exchange,提问作者Mohak Pal
相关产品推荐
相关产品推荐

