期望值

期望值

这个星期恶补了一下期望值,感觉有些题目还是挺灵活的,只要方向正确,基本上都能把公式写出来。
论文《浅析竞赛中一类数学期望问题的解决》

期望值的基本公式

1、如果\(X\)是一个离散的随机变量,输出值为\(x_1, x_2, ...\) 和输出值相应的概率为\(p_1, p_2, ...\)(概率和为 1), 那么期望值\(E(X)=\sum_i p_ix_i\)
2、对于任意随机变量\(X,Y\)以及常量\(a,b\), \(E(aX+bY)=aE(X)+bE(Y)\)
3、档两个随机变量\(X,Y\)独立且各自都有一个期望时,有\(E(X \cap Y)=E(X)E(Y)\)

problems

聪聪与可可(NOI2005)

题目描述:有一个拥有\(n\)个点的无向图,聪聪和可可分别在一个点,可可每个时间单位都会选择去相邻的一个点或者不动(概率相等),而聪聪每个时间单位会走到可以缩短他们之间距离的点,如果有多个则选择编号最小的点,如果这时聪聪和可可不在同一个点,那么聪聪可以再走多一步而不花费时间,聪聪先走,求平均聪聪需要多长时间才能与可可在同一个点。

solution
先预处理出\(next[i][j]\),表示聪聪在\(i\), 可可在\(j\)时,聪聪下一步走哪里,还有每个点的度\(d[i]\)。设\(f[i][j]\)为当聪聪在\(i\),可可在\(j\)时的期望时间。则\((to[j][k])\)表示与\(j\)相连的第\(k\)个点。

\[nid=next[next[i][j]][j] \]

\[f[i][j]=\frac{\sum_{k=1}^{d[i]} f[nid][to[j][k]]+f[nid][j]}{d[i]+1}+1 \]

\(f[i][i]=0, f[i][j]=1(if\) \(nid==j\) \(or\) \(next[i][j]==j)\)
记忆化搜索即可。

Highlander(SGU 385)

题目描述:随机给出\(1\)\(n\), \(n\)个数字的一个错位排列 \(a\), 对应了一张有向图\(G = (V, E)\),其中\(V=\){\(1, 2, …,n\)}\(, E=\){\((i, a_i)\)}。问在最长环上的顶点数的期望值。

solution
首先,这些环都是简单环且没有自环。重要的是知道在\(m\)个数字中取出\(k\)个数字组成一个环有\(\frac{A_m^k}{k}\)种方案,如果有\(i\)个环长度相同,则需除以\(A_i^i\)
\(f[i][j][k]\)表示错位排列中\(i\)个数字已经确定,最长环为\(j\), 且有\(k\)个长度为\(j\)的环的方案数,为避免重复计算,设定环的长度递增不下降。

\[f[i][j][k]=\left\{\begin{matrix} \frac{A_n^j}{j} (i==j, j>1, k=1)\\ f[i-j][j][k-1]*\frac{A_{n-i+j}^j}{j}(2 \leq j \leq i-2, 1 < k < \lfloor \frac{i}{j} \rfloor)\\ \sum_{k=2}^{min(j, i-j+1)} g[i-j][k]*\frac{A_{n-i+j}^j}{j}(2 \leq j \leq i-2, k==1)\\ 0 (else) \end{matrix}\right. \]

\[g[i][j]=\sum_{k=1}^{\lfloor \frac{i}{j} \rfloor} f[i][j][k] \]

\[ans=\frac{\sum_{j=2}^{j \leq n} \sum_{k=1}^{k \leq n} j*k*f[n][j][k]}{\sum_{j=2}^{j \leq n} \sum_{k=1}^{k \leq n} f[n][j][k]} \]

Red is good (TopCoder SRM420 Div1)

题目描述:有\(R\)张红牌和\(B\)张黑牌, 随机打乱然后一张一张地翻牌,翻到红牌得到 1 美元,黑牌则付出 1 美元。可以随时停止翻牌,在最优策略下平均能得到多少钱。

solution
\(f[i][j]\)表示剩下\(i\)张红牌和\(j\)张黑牌获得钱的期望。

\[f[i][j]=\left\{\begin{matrix} max(0, (f[i-1][j]+1)*\frac{i}{i+j}+(f[i][j-1]-1)*\frac{j}{i+j}) (i>0, j>0)\\ f[i-1][j]+1 (i>0, j==0)\\ 0 (i==0) \end{matrix}\right. \]

\(f[R][B]\)即为所求

收集邮票(bzoj1426)

题目描述:有n种不同的邮票,皮皮想收集所有种类的邮票。唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n。但是由于凡凡也很喜欢邮票,所以皮皮购买第k张邮票需要支付k元钱。 现在皮皮手中没有邮票,皮皮想知道自己得到所有种类的邮票需要花费的钱数目的期望。

solution
\(f[i]\)表示现有\(i\)种邮票,期望还要买\(f[i]\)张,\(f[n]=0\)
\(f[i]=f[i]*\frac{i}{n}+f[i+1]*\frac{n-i}{n}+1\)
\(g[i]\)表示现有\(i\)种邮票,期望还要\(g[i]\)元,\(g[n]=0\)
\(g[i]=(g[i]+f[i])*\frac{i}{n}+(f[i+1]+g[i+1])*\frac{n-i}{n}+1\)
买一张邮票时已经预支付了后面每张邮票各1元,所以可以看成当前邮票只是1元。\(g[0]\)即为答案。

tribbles(uva11021)

题目描述:一开始有\(n\)个球,每个球只活1天,在死之前,每个球有\(P_i\)(最多生\(s-1\)只)的概率生出\(i\)个球,问\(m\)天后全部死亡的概率。

solution
因为每个球都是独立的,所以只要算出一个球及其后代第\(m\)天全部死亡的概率\(f[m]\),答案就是\(f[m]^n\)

\[f[i]=\sum_{j=0}^{j<s} P_j * f[i-1]^j \]

\(f[i]\)可理解为剩下\(i\)天全部死亡的概率,假如生了\(j\)个球,那么每个球在剩下的\(i-1\)天全部死亡的概率为\(f[i-1]\)\(j\)个球就是\(j\)次方。

取球游戏(bzoj4204)

题目描述:给出\(1\)\(n\)的标号和\(m\)个球,每次随机取一个球,将其标号+1之后放回,如果取出的标号是\(n\)就置为\(1\),求执行\(k\)次操作之后每种球的期望个数。

solution
\(f[i][j]\)表示第\(i\)次操作后,标号为\(j\)的球的期望个数
\(f[i][j]=(1-\frac{f[i-1][j]}{m})*f[i-1][j]+\frac{f[i-1][j]}{m}*(f[i-1][j]-1)+\frac{f[i-1][j-1]}{m}\)
\(=f[i-1][j]-\frac{f[i-1][j]}{m}+\frac{f[i-1][j-1]}{m}\)
因为\(k\)比较大,所以考虑用矩阵乘法,然后发现矩阵是一个循环矩阵,所以矩阵乘法可优化为\(O(n^2)\)

概率充电器(bzoj3566)

题目描述:给出一棵\(n\)个点的树,再给出每个点是电源的概率,每条边导电的概率,问期望有多少个点带电。

solution
这题求每个点带电的概率有点麻烦,而求每个点不带电的概率比较好算。设\(f[i]\)为第\(i\)个点由它的儿子影响下,不带电的概率,\(g[i]\)则表示由父亲影响。\(p_{ij}\)\(i,j\)边的导电概率,\(q_i\)\(i\)为电源的概率。

\[f[i]=\prod_{j \in son[i]} (1-p_{ij}+p_{ij}f[j])(1-q_i) \]

\(g[i]\)的时候要求出\(i\)的父亲\(fa\)不导电的概率,这时要除去\(i\)\(fa\)的影响。设\(tmp\)为除去\(i\)\(fa\)不导电的概率,

\[tmp=\frac{f[fa]*g[fa]}{1-p_{ifa}+p_{ifa}*f[i]} \]

\[g[i]=tmp+(1-tmp)*(1-p_{ifa}) \]

注意判断\(tmp\)的分母是否为\(0\).

以上所讲的都是用递推式来求期望值,如果把这些递推式看成是一条条方程,在时间允许的条件下,也可以用高斯消元来求答案。

水水的例题

题目描述:给出一张图,给出每条边的长度,在一个点走到相邻的每个点的概率是相等的,问从\(1\)号点走到\(n\)号点的期望长度。

solution
如果这时无环有向图,那么就可以用递推式的方法来做,问题是这道题是无向有环图,只有对于每个点列出方程,然后用高斯消元求解。

First Knight(SWERC 2008 Problem B)

题目描述:给出一个\(n*m\)的矩形棋盘,给出每个格子走到相邻四个格子分别的概率(每个格子的不同),问从\((1, 1)\)走到\((n, m)\)的期望步数。

solution
貌似方程很容易就可以列出来,但数据范围是\(n,m \in [1, 40]\).\(O(n^3m^3)\)肯定过不了。但可以对高斯消元进行优化。
首先,让\((1, 1)\)这一未知数最后消元,这样就不用回代了。
接着,上图(取自《浅析竞赛中一类数学期望问题的解决方法》ppt)

即与当前未知量有关的方程数只有\(m\)个,而这\(m\)的方程涉及的未知量只有\(2m+1\)个,所以最终的时间复杂度为\(O(nm^3)\)

posted @ 2016-04-10 16:01  GerynOhenz  阅读(1996)  评论(0编辑  收藏  举报