概率期望问题总结(2)

概率期望问题总结(2)

前言

之前写的那一篇在这里:戳戳!
今天叉姐来CJ讲课,内容为期望概率问题......
然后就有了这一篇博客,STO 叉姐 ORZ !!!

递推式思想(Dag思想)

例题:
有一个\(m\)个面的骰子,问:
( 1 ) 连续扔出n次相同的就结束,问期望次数。
( 2 ) 连续扔出n次不同的就结束,问期望次数。
\(n,m \leq 10^6\)

显然逆推比较好设终止状态的期望(\(f_n=0\)),所以逆推。
以第一问为例。
\(f_i\)表示已经连续扔出了\(i\)个相同的,期望还需要扔多少步。
转移:

\[f_i = \frac{1}{m}f_{i+1} + \frac{m-1}{m}f_1 + 1 \]

按照叉姐的说法: 把状态看成一个图,那么每个点对应的向外连边。
同理第二问:
\(g_i\)表示已经连续扔出了\(i\)个不相同的,期望剩余步数。
转移:

\[g_i = \frac{m-i}{m} g_{i+1} + \sum_{k=1}^i g_k + 1 \]

很有道理的样子.....但是怎么算这个式子呢?

方程思想

以第一问为例:\(f_i = \frac{1}{m}f_{i+1} + \frac{m-1}{m}f_1 + 1\)
带入\(i = 1\) , 有\(f_1 = \frac{1}{m}f_2 + \frac{m-1}{m}f_1 + 1\)
所以\(f_2\)可以表示为\(f_2 = af_1 + b\)
显然\(f_3\)也可以类似表示为\(f_3 = af_2+b = a'f_1 + b'\)
所以\(f_2\) ~ \(f_n\)都可以表示为\(af_1 + b\)
而已知\(f_n\) = 0 , 所以就可以把\(f_1\)给直接解出来了。
而显然\(f_0 = f_1 + 1\),因为不管扔到多少,\(f_0\)都可以转移到\(f_1\)
所以答案\(f_0\)也就解除来了。

差分思想

咳咳......据说上面这种做法会爆精度啊,怎么办呢?
\(f_i = \frac{1}{m}f_{i+1} + \frac{m-1}{m}f_1 + 1\)
类似错位相减,
\(f_{i+1} = \frac{1}{m}f_{i+2} + \frac{m-1}{m}f_1 + 1\)
然后上下相减:
\(f_{i+1} - f_i = \frac{1}{m}(f_{i+2} - f_{i+1})\)
\(f_1 - f_0 = 1\)
嗯,我们好像知道了任意两个相邻的\(f\)之间的差值了啊。
所以$f_0 = f_n + \sum_{i=0}^{n-1} \frac{1}{m^i} $,直接算即可。
类似的,第二问可以推出:

\[g_0 = g_n + 1 + \sum_{i=0}^{n-2} \prod_{j=0}^i \frac{m}{m-1-j} \]

这个还是蛮重要的,很多题目都要用到。

抽牌小公式

一个小公式:
如果有\(n\)张牌,抽出第\(i\)张牌的概率为\(p_i\)
那么,当规则为抽到第\(i\)张牌就停止时,期望步数为\(\frac{1}{p_i}\)

\(Min\)-\(Max\)容斥

例题
\(n\)种卡片,抽到第\(i\)种的概率为\(p_i\),求集齐所有卡片的期望步数。
\(n\leq 20\)

当时讲课时我来了一句:这不是傻逼题吗?状压再移项即可。
然后叉姐来了一句骚话:你能不开数组A掉这题吗?
接着\(laofu\)接了一句:还是要开一个大小为20的数组存\(p\)的吧....
现场一篇死寂.....
正经一点,介绍以下\(Min\)-\(Max\)容斥。
公式先摆出来:

\[E(max\{S\}) = \sum (-1)^{|S'|+1} E(min\{S'\})\ \ ,\ \ S' \in S \]

是不是看起来很NB啊。
其中:
\(max\{S\}\)表示\(S\)集合中最晚出现的元素。
\(min\{S\}\)表示\(S\)集合中最早出现的元素。
\(E\)表示期望要走多少步。
它的优点是把求\(Max\)(一般不好求) 变为了求\(Min\)(一般贼水)。
这题呢?
本题的目标是求\(E(max\{全集\})\)
\(E(min\{S'\})\)表示全集的某个子集中出现任意一个元素的期望步数。
例如:\(min\{x_1,x_2,x_3\}\)的概率为\(\ p_{x_1} + p_{x_2} + p_{x_3}\)
还记得抽牌小公式吗?所以\(E(min\{x_1,x_2,x_3\}) = \frac{1}{p_{x_1} + p_{x_2} + p_{x_3}}\)
然后直接套公式容斥一下即可。

赌徒输光问题(Gambler Ruin)

例题
在数轴上有一个点\(a\),每一步有\(p\)的概率+\(1\),\((1\)-\(p)\)的概率-\(1\)
现在问在到达0之前到达\(a+b\)点的概率(即到达0点就gg了)。

是不是很像两个人在赌钱,看谁先让对手输光?
怎么解呢? 先列出递推式,设\(f_i\)表示现在在\(i\)点且最终达成目标的概率:

\[f_i =pf_{i+1} +(1-p)f_{i-1} \]

化式子:

\[[\ p +(1-p)\ ]f_i = pf_{i+1} + (1-p)f_{i-1} \]

移项:

\[p(f_{i+1}-f_i) = (1-p)(f_{i} - f_{i-1}) \]

所以:

\[f_{i+1} - f_i = \frac{1-p}{p} (f_i - f_{i-1}) \]

其中\(f_0 = 0\) , \(f_{a+b} = 1\)
嗯,设\(f_1-f_0 = \delta\) , 那么可以依次递推出\(f_2-f_1\)\(f_3-f_2\).....
最后整理一下可以得到:

\[f_a = \frac{f_a-f_0}{f_{a+b}-f_0} = \frac{1-(\frac{1-p}{p})^a}{1-(\frac{1-p}{p})^{a+b}} \]

当然这是\(p!=\frac{1}{2}\)的情况。
\(p = \frac{1}{2}\)时,不做等比数列求和,直接带入原式可得:\(f_a = \frac{a}{a+b}\)

陷阱问题

从刚才的赌徒输光问题衍生出来的:
注意到\(p = \frac{1}{2}\)的时候其实是很值得玩味的。
我们可以把它扩展一下:
对于一个点\(a\),左侧距离它\(d_{left}\)的地方有一个陷阱\(L\),右侧距离\(d_{right}\)的地方有一个陷阱\(R\)
掉入某个陷阱后就出不来了,每一时刻点\(a\)等概率的+1或-1。
那么\(a\)点掉进陷阱\(L\)的概率\(E(L)\)与掉进\(R\)的概率\(E(R)\)为:

\[\frac{E(L)}{E(R)} = \frac{d_{right}}{d_{left}}\ \ \ ,\ \ E(L)+E(R)=1 \]

不是特别难推,更赌徒输光一样的差分搞一搞即可。

无向图公式

给定一个无向图(保证不为二分图),
初始在某个点放一个硬币,每一时刻硬币等概率向某个方向移动或不动。
那么走了无穷多步后,最终停在\(u\)的概率为:

\[\pi(u) = \frac{degree(u) + 1}{|V| +2|E|} \]

如果是二分图?
如果初始放点位置是随机的,那么也满足这个公式,否则不满足。

posted @ 2018-03-29 23:33  GuessYCB  阅读(935)  评论(0编辑  收藏  举报