优客文库提供全面的范文格式和文档模板,包括申请书、合同、借据、证明、求职信等,助力您快速撰写专业文档。

Python解决问题,在未触发大保底机制时,每抽一发有p/2的概率抽到当期5星,有p/2的概率抽到常驻5星,其余的1一p概率不出5星。当抽到常驻5星后,触发了大保底机制,以后每抽一发有p的概率抽到当期

来自 重庆市重庆市 的网友 时间: 热度:26°C 加入收藏 我要投稿 点赞(3)
根据给定的条件,我们可以列出如下的概率转移矩阵:

```
P = [[1/2, 1/2, 0], # 从未触发大保底机制抽到当期5星的概率
[1/2, 0, 1/2], # 从未触发大保底机制抽到常驻5星的概率
[p, 0, 1-p]] # 从触发大保底机制抽到当期5星的概率
```

其中,第一行表示从未触发大保底机制抽到当期5星的概率,第二行表示从未触发大保底机制抽到常驻5星的概率,第三行表示从触发大保底机制抽到当期5星的概率。

我们可以定义一个初始状态向量 `v = [0, 0, 1]`,表示初始状态为触发大保底机制。

根据马尔可夫链的性质,我们可以通过迭代计算 `v = v * P` 来得到最终的状态向量 `v`,其中 `*` 表示矩阵乘法。

在这个问题中,我们需要计算的是抽到一张当期5星卡所需的期望抽卡次数。我们可以定义一个计数器 `count`,初始值为0,每次迭代时将计数器加1,直到状态向量 `v` 的第一个元素(从未触发大保底机制抽到当期5星的概率)大于0。

以下是使用Python代码计算期望抽卡次数的示例:

```python
import numpy as np

def calculate_expectation(p):
P = np.array([[1/2, 1/2, 0],
[1/2, 0, 1/2],
[p, 0, 1-p]])
v = np.array([0, 0, 1])
count = 0

while v[0] == 0:
v = np.dot(v, P)
count += 1

return count

p = 0.5 # 抽中5星的概率
expectation = calculate_expectation(p)
print("期望抽卡次数:", expectation)
```

请注意,这个计算结果是一个理论上的期望值,实际抽卡结果可能会有一定的偏差。
221381
领取福利

微信扫码领取福利

微信扫码分享

直接下载
单次下载
0.5元/次
支付宝支付
2.免费下载(每天5次)
公众号:控分学霸复制
复制微信公众,搜索即可关注!
扫一扫关注公众号
欢迎使用微信支付
扫一扫支付
金额:
常见问题

请登录之后再下载!

下载中心

您的账号注册成功!密码为:123456,当前为默认信息,请及时修改

下载文件立即修改

帮助中心

如何获取自己的订单号?

打开微信,找到微信支付,找到自己的订单,就能看到自己的交易订单号了。

阅读并接受《用户协议》
注:各登录账户无关联!请仅用一种方式登录。


用户注册协议

一、 本网站运用开源的网站程序平台,通过国际互联网络等手段为会员或游客提供程序代码或者文章信息等服务。本网站有权在必要时修改服务条款,服务条款一旦发生变动,将会在重要页面上提示修改内容或通过其他形式告知会员。如果会员不同意所改动的内容,可以主动取消获得的网络服务。如果会员继续享用网络服务,则视为接受服务条款的变动。网站保留随时修改或中断服务而不需知照会员的权利。本站行使修改或中断服务的权利,不需对会员或第三方负责。

关闭