关于马尔可夫链的一道题目

  • 问题

  • 解答

  • python模拟

问题

某人有 2 把伞,并在办公室和家之间往返.如果某天他在家中(办公室时)下雨而且家中(办公室)有伞他就带一把伞去上班(回家),不下雨时他从不带伞.如果每天与以往独立地早上(晚上)下雨的概率为0.7,试求他被雨淋湿的机会.

解答

时刻持有的雨伞数量,则其状态量 。当下雨才用伞,每天下雨是独立事件,在此马尔可夫链中,用 表示状态量,当 大于0时,转移概率为 (下雨从手边带一把伞走), (只是去了另一边,不带伞),因此转移矩阵为:

设平稳状态概率分别为 根据转移矩阵容易求得

淋雨的概率 则为 约等于 0.0913

python模拟

模拟这个人上班回家往返 n 次,那么出行次数是 2n 每次下雨的概率就是 0.7。设最开始伞都在家里,则出门的时候向是否下雨的状态问询,记录下淋雨的次数。

import random


# 试验往返次数
n = 1000000
# 设置随机抽样下雨 p=0.7 的环境样本
rain = [1, 1, 1, 1, 1, 1, 1, 0, 0, 0] 
# 被淋雨的次数
get_wet = 0
# A点伞的数量
a_um = 2
# B点伞的数量
b_um =0
# 出门/回家
status = ['go', 'back']

for i in range(n):
    for s in status:
        if s == 'go':
            if random.choice(rain) == 1:
                if a_um > 0:
                    a_um -= 1
                    b_um += 1
                    get_wet += 0
                else:
                    get_wet += 1
            else:
                get_wet += 0
        else:
            if random.choice(rain) == 1:
                if b_um > 0:
                    b_um -= 1
                    a_um += 1
                    get_wet += 0
                else:
                    get_wet += 1
            else:
                get_wet += 0
print(get_wet/2/n)
0.09133
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值