米哈游笔试概率题(阅读理解!!!)
第三道题考试没做出来,今天网上找到原题描述,才发现是理解有误。
题意
题目背景为元神和星穹铁道的抽卡系统,我也不玩,根本不懂什么大保底机制。
务必理解:当抽到常驻5星后,触发了大保底机制,以后每抽一发有p的概率抽到当期5星,其余的1-p概率不出5星。
再结合题意,一定要明白:89次未抽中,必然下一次能抽中五星(抽中触发大保底的常驻5星或者抽中需要的当期5星)。在大保底机制下,89次未抽中五星,最后一次必为当期5星。
题目来源
分析
先计算进入大保底机制后,抽中当期5星的次数期望。
为方便理解,用假五星表示常驻5星,真五星表示当期5星。
状态转移图:
大保底机制:以后每抽一发有p的概率抽到当期5星,其余的1-p概率不出5星。
当连续未抽中89次后,若已触发了大保底机制,则100%概率抽到当期5星。
也就是说,最多抽90次。那么可以算期望了,而不是一个无穷级数求和。
大保底机制下的期望次数
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星。
此时,我们可以利用大保底机制下计算好的期望次数来计算总的次数。
其中,第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。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2019-08-14 CF #575 Div3
2018-08-14 第二场练习赛 | 赛后的一点感想