娃娃机吊到娃娃的概率

news/2024/11/24 0:40:12/

这里写自定义目录标题

    • 娃娃机的问题
    • 问题1:概率计算(由上至下)
    • 问题2:仿真(由下至上)

娃娃机的问题

某款娃娃机的设置如下:

  1. 吊到娃娃的概率 :任意一次吊到的概率为0.6%;
  2. 保底机制 :每90次抓取必定有一次可以吊到娃娃,即最多失败89次之后,必定在90次时可以吊到娃娃。

如果可以无限次玩这款娃娃机,问:

  1. 吊到娃娃的平均概率是多少?
  2. 请用Python程序仿真实现。

问题1:概率计算(由上至下)

  1. 分析
    第1次吊到娃娃的概率(即条件概率):0.006;
    第2次吊到娃娃的概率(即条件概率): 0.994 ( 第 1 次 未 吊 到 ) × 0.006 ( 第 2 次 吊 到 ) 0.994(第1次未吊到)\times 0.006(第2次吊到) 0.9941×0.0062
    第3次吊到娃娃的概率(即条件概率): 0.99 4 2 ( 第 1 和 第 2 次 都 未 吊 到 ) × 0.006 ( 第 3 次 吊 到 ) 0.994^2(第1和第2次都未吊到)\times 0.006(第3次吊到) 0.994212×0.0063

    第89次吊到娃娃的概率(即条件概率): 0.99 4 88 ( 第 1 到 第 88 次 都 未 吊 到 ) × 0.006 ( 第 89 次 吊 到 ) 0.994^{88}(第1到第88次都未吊到)\times 0.006(第89次吊到) 0.99488188×0.00689
    第90次吊到娃娃的概率(即条件概率): 0.99 4 89 ( 第 1 到 第 89 次 都 未 吊 到 ) × 1 ( 第 90 次 吊 到 ) 0.994^{89}(第1到第89次都未吊到)\times 1(第90次吊到) 0.99489189×190
  2. 计算
    吊到娃娃的平均概率 P ˉ \bar{P} Pˉ= 每 次 吊 到 的 概 率 × 需 要 90 次 吊 到 娃 娃 概 率 每次吊到的概率\times需要90次吊到娃娃概率 ×90
    P ˉ = ( 1 + 0.994 + . . . + 0.99 4 88 ) × 0.006 + 0.99 4 89 × 1 1 + 0.994 + 0.99 4 2 + . . . + 0.99 4 89 \bar{P}=\frac{(1+0.994+...+0.994^{88})\times0.006+0.994^{89}\times1}{1+0.994+0.994^{2}+...+0.994^{89}} Pˉ=1+0.994+0.9942+...+0.99489(1+0.994+...+0.99488)×0.006+0.99489×1
    = 1 − 0.99 4 89 1 − 0.994 × 0.006 + 0.99 4 89 × 1 1 − 0.99 4 90 1 − 0.994 = 0.006 1 − 0.99 4 90 = 0.0143 =\frac{\frac{1-0.994^{89}}{1-0.994}\times0.006+0.994^{89}\times1}{\frac{1-0.994^{90}}{1-0.994}}=\frac{0.006}{1-0.994^{90}}=0.0143 =10.99410.9949010.99410.99489×0.006+0.99489×1=10.994900.006=0.0143
    这也就是数学期望了。

问题2:仿真(由下至上)

import random
bonusNum = 600000 # 吊娃娃的仿真次数
starNum = 90 # 保底机制
probability = 6 # 任意一次吊到娃娃的概率,单位为(千分之,即乘以1000)
num = 0 # 吊到娃娃的次数
rate = 0 # 连续没有吊到娃娃的次数
for j in range(1, bonusNum):numP = num # numP是前一次的numif random.randint(1, 1000) <= probability: # 一次就吊到了娃娃num += 1 # 吊到了娃娃rate = 0 # 连续没有吊到娃娃的次数清零if rate != starNum and numP == num: # 没有吊到娃娃,且没有触发保底机制rate += 1if rate == starNum and numP == num: # 触发了保底机制,吊到了娃娃num += 1rate = 0
print('总计吊到娃娃的次数:', num, '仿真次数内吊到娃娃的平均概率:', num/bonusNum)
print('保底机制吊到娃娃的概率:', 1/starNum)
print('仿真次数内吊到娃娃的平均概率比保底机制吊到娃娃的概率:', (num/bonusNum)/(1/starNum)-1)

结果
在这里插入图片描述

参考文献

  1. 娃娃机使用说明

http://www.ppmy.cn/news/825776.html

相关文章

YOLOv3和YOLOv5的区别

OLOv3和YOLOv5都是基于YOLO系列的目标检测算法&#xff0c;它们有一些共同的特点&#xff0c;比如使用Darknet作为主干网络&#xff0c;使用锚框和多尺度特征图进行预测&#xff0c;使用交叉熵损失和均方误差损失进行优化等。 但是&#xff0c;它们也有一些不同之处&#xff0…

从零开始的力扣刷题记录-第八十四天

力扣每日四题 1002. 查找共用字符-简单997. 找到小镇的法官-简单343. 整数拆分-中等1024. 视频拼接-中等总结 1002. 查找共用字符-简单 题目描述&#xff1a; 给你一个字符串数组 words &#xff0c;请你找出所有在 words 的每个字符串中都出现的共用字符&#xff08; 包括重复…

如何打出^符号

打开大写锁定Caps Lock键&#xff0c;然后shift6&#xff0c;就能够打出^符号了

如何在markdown中打出上标、下标和一些特殊符号

转载,记录:https://www.jianshu.com/p/80ac23666a98

MathType中平均值该如何输入

2019独角兽企业重金招聘Python工程师标准>>> 在数学中有很多符号和公式样式&#xff0c;在用MathType数学公式编辑器编辑时经常不知道选择什么样的模板进行输入&#xff0c;比如平均值&#xff0c;那么MathType中平均值是怎么输入的呢&#xff1f; 更多内容可参考&a…

在markdown中打出上标、下标、上、下角标、特殊符号

csdn写文章的时候经常遇到要写公式的时候&#xff0c;又经常使用上下角标&#xff0c;记录一下markdown语法怎么打出上下角标。 markdown是支持HTML语法的&#xff0c;所以这里就是利用html语法在markdown中输入上下角标和特殊符号 上标 n<sup>2</sup>n效果&…

MathType里如何打出损失函数L符号

方法&#xff1a;复制下方指令&#xff0c;粘贴到mathtype里即可。 \mathcal{L}

∑x 算平均数

#include<stdio.h> int main() {int num;int sum 0;int count 0;scanf("%d",&num);while( num ! 0 ){sum num;count;num--;}printf("%f",sum*1.0/count);return 0; }