条件期望是概率论中的一个非常有意思的知识点,但是在一些课程中并不涉及到,实在是遗憾。条件期望,顾名思义,就是条件分布的期望。除此之外呢,关于条件期望的另一个非常重要的知识点是重期望公式:条件期望的期望即是其本身。我们来看个关于条件期望的有趣例子吧~
一矿工被困在有三个门的矿井里,第一个门通一坑道,沿此坑道走3小时可到达安全区;第二个门通一坑道,沿此坑道走5小时又回到原处;第三门通一坑道,沿此坑道走7小时又回到原处。假定此矿工每次都是等可能的在这三个坑道中选择一个,试求他平均需要多少小时才能走出矿井。(茆诗松等,概率论与数理统计教程,高等教育出版社)
这个题目就是一个典型的条件期望的题目。
有关条件期望,有两个最为关键与重要的知识点:条件期望公式与重期望公式
条件期望公式:
对于离散型随机变量:
对于连续型随机变量:
重期望公式:
求解
有了这些知识,我们就可以来求解这道题目了。
当然,我们知道,直接列出矿工走出矿井的分布列是不太现实的,谁知道这个倒霉的矿工最多可以被困在井下多久。
但是我们知道,每一次他选择第i个坑道的可能性是相同的,即:
而选择每一个坑道所需时间即为条件期望,因此:
而总时间的期望与这些条件期望之间存在什么关系呢?
这个公式化简,可以求出:
意味着这个矿工平均要花15个小时才能走出坑道。换个角度理解,如果这个矿工不幸反复掉进这个矿井中,他平均要花15个小时才能走出坑道。世界上还有比这更加折磨人的事嘛!
模拟
当然,光有计算结果还是不够的,现实中矿工可没有那么多影分身,所以我们可以用Python来模拟一下。
话不多说,上代码
import numpy as np
from matplotlib import pyplot as plt
from random import randint
iterations = 10000
x = np.arange(iterations)
y = np.zeros(iterations)
for i in range(iterations):
result = 0
while True:
pick = randint(1,3)
if pick == 1:
result += 3
break
elif pick == 2:
result += 5
else:
result += 7
y[i]=result
print(sum(y)/iterations)
plt.scatter(x,y, s=0.1, color = 'g', marker = 'o')
plt.xlabel("Times of iterations")
plt.ylabel("Total time")
plt.show()
这个矿工走出矿井所需时间的分布如下图所示。模拟了10000次以后,我们可以发现这个矿工平均要花14.6小时才能走出坑道。如果他某一天运气实在太背,最多可能要花上160多个小时。
这该死的命运呵。
矿工掘地求生需要的时间
网友评论