米哈游笔试概率题(阅读理解!!!)

第三道题考试没做出来,今天网上找到原题描述,才发现是理解有误。

题意

题目背景为元神和星穹铁道的抽卡系统,我也不玩,根本不懂什么大保底机制。
务必理解:当抽到常驻5星后,触发了大保底机制以后每抽一发有p的概率抽到当期5星,其余的1-p概率不出5星。
再结合题意,一定要明白:89次未抽中,必然下一次能抽中五星(抽中触发大保底的常驻5星或者抽中需要的当期5星)。在大保底机制下,89次未抽中五星,最后一次必为当期5星。
题目来源

分析

先计算进入大保底机制后,抽中当期5星的次数期望。
为方便理解,用假五星表示常驻5星,真五星表示当期5星。
状态转移图:

大保底机制

1-p

p

1-p

p

假五星

未抽中

真五星

大保底机制以后每抽一发有p的概率抽到当期5星,其余的1-p概率不出5星。
当连续未抽中89次后,若已触发了大保底机制,则100%概率抽到当期5星。
也就是说,最多抽90次。那么可以算期望了,而不是一个无穷级数求和。

大保底机制下的期望次数

E_fake=E(cnt)=k=190p(k)k

p = 0.006

# 大保底机制情况下 抽中当期5星的期望
E_fake = 0.0
for i in range(89):
	E_fake += (i+1) * (1-p)**i * p

# 第90次一定抽中
E_fake += 90*(1-p)**89

再来看,未触发大保底机制的状态转移图。图中数字表示抽卡次数,当抽到第90次时,下次一定会抽中5星。

1-p

1-p

1-p

p/2

p/2

1/2

p/2

p/2

1/2

1

2

90

...

大保底

真五星

此时,我们可以利用大保底机制下计算好的期望次数来计算总的次数。

E(cnt)=k=190p(k)k+p(k)(k+E_fake)

其中,第90次抽卡需要单独处理概率。

E_true = 0.0
for i in range(89):
	# 连续i次未抽中 然后再抽中
	E_true += (i+1) * (1-p)**i * (p/2)
	# 连续i次未抽中 然后再抽中当期
	E_true += (i+1+E_fake) * (1-p)**i * (p/2)

# 第89次未抽中 第90次一定抽中五星
E_true += (89+1+E_fake)*(1-p)**89*0.5 + (89+1)*(1-p)**89*0.5

print(E_true) # 104.54970566412015

样例给出 p=0.006,参考答案为104.5497057。

posted @   izcat  阅读(859)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2019-08-14 CF #575 Div3
2018-08-14 第二场练习赛 | 赛后的一点感想
点击右上角即可分享
微信分享提示