娃娃机吊到娃娃的概率

娃娃机的问题

某款娃娃机的设置如下:

  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是前一次的num
    if random.randint(1, 1000) <= probability: # 一次就吊到了娃娃
        num += 1 # 吊到了娃娃
        rate = 0 # 连续没有吊到娃娃的次数清零
    if rate != starNum and numP == num: # 没有吊到娃娃,且没有触发保底机制
        rate += 1
    if rate == starNum and numP == num: # 触发了保底机制,吊到了娃娃
        num += 1
        rate = 0
print('总计吊到娃娃的次数:', num, '仿真次数内吊到娃娃的平均概率:', num/bonusNum)
print('保底机制吊到娃娃的概率:', 1/starNum)
print('仿真次数内吊到娃娃的平均概率比保底机制吊到娃娃的概率:', (num/bonusNum)/(1/starNum)-1)

结果
在这里插入图片描述

参考文献

  1. 娃娃机使用说明
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶老师讲大数据

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值