几率指望知识点及题目详解

基础知识

指望的线性性质

\(E(X + Y) = E(X) + E(Y)\)
证实:dom

\(E(X + Y) = \sum\limits_i\sum\limits_jP(X=i \&\& Y=j)(i+j)\)
\(= \sum\limits_i\sum\limits_jP(X=i \&\& Y=j)i + \sum\limits_i\sum\limits_jP(X=i \&\& Y=j)j\)
\(=\sum\limits_ii\sum\limits_jP(X=i\&\&Y=j)j+\sum\limits_ij\sum\limits_jP(X=i\&\&Y=j)i\)
\(=\sum\limits_iP(X=i)i+\sum\limits_jP(Y=j)j\)
\(=E(x) + E(Y)\)spa

前缀和技巧

有 n 个随机变量X[1…n],每一个随机变量都是从 1…S 中 随机一个整数,求 Max(X[1…n]) 的指望code

solution游戏

\(E(Y)=\sum\limits_{i=1}^SP(Y=i)i=\sum\limits_{i=1}^Si(P(Y\le i) - P(Y \le i - 1))=i({\frac{i}{S}}^n-{\frac{(i-1)}{S}}^n)\)事件

小结论

几率为\(p\)的事件指望\(\frac{1}{p}\)后发生。如抛硬币,抛出正面的几率为\(\frac{1}{2}\)指望抛两次后发生。ip

取球游戏

取球游戏1

箱子里有\(n\)个球\(1...n\),你要从中拿\(m\)次球,拿了后不放回,求取出的数字之和的指望。ci

solutionit

\(E(\sum\limits_{i=1}^nX_i)=\sum\limits_{i=1}^nE(X_i)=\sum\limits_{i=1}^nP(X=i)i=\sum\limits_{i=1}^n\frac{m}{n}\times i=\frac{m}{n}\sum\limits_{i=1}^ni=\frac{m}{n}\times \frac{n(n+1)}{2}=\frac{m(n+1)}{2}\)io

取球游戏2

箱子里有\(n\)个球\(1...n\),你要从中拿\(m\)次球,拿了后放回,求取出的数字之和的指望。class

solution

取到每一个球的几率均为\(\frac{m}{n}\),故答案仍为\(\sum\limits_{i=1}^n\frac{m}{n}i=\frac{m(n+1)}{2}\)

取球游戏3

箱⼦子⾥有 n 个球 1…n,你要从⾥面拿 m 次球,拿了后以 p1 的几率放回,以 p2 的几率放回两个和这个相同的球, 求取出的数字之和的指望

solution
仍然为\(\sum\limits_{i=1}^n \frac{m}{n}i=\frac{m(n+1)}{2}\)

这三个问题均可以考虑全部的n个球是面临相同状况,因此被选中的几率都是\(\frac{m}{n}\)

游走问题

游走问题1

在一条 n 个点的链上随机游走,求从一段端走到另外一端的指望步数

solution
\(E(S)= \sum\limits_{i=1}^{n-1}E(X_i)\)

\(X_i\)表示第一次从i到达\(i+1\)的指望步数。

由于有\(\frac{1}{2}\)的几率会直接从\(i\)走到\(i+1\),有\(\frac{1}{2}\)的几率会走回\(i-1\),因此\(X_i=\frac{1}{2}+\frac{1}{2}\times (1 + X_{i-1}+X_i)=2+X_{i-1}\)

游走问题2

在一个\(n\)个点的彻底图上游走,求从一个点到另外一个点指望步数。

solution
由于是彻底图。不论当前在哪一个点,到达目标点的几率均为\(\frac{1}{n-1}\),因此几率为\(\frac{1}{n-1}\),根据几率为\(p\)的事件指望\(\frac{1}{p}\)次后发生。因此达到目标点的指望步数为\(n-1\)

游走问题3

在一张 2n 个点的彻底二分图上游走,求从一个点走到另外一个点的指望步数

solution

分为两点在同一侧和不一样侧讨论。
A表示位于不一样侧的指望步数,B表示位于同一侧的指望步数。
\(B=1+A\)

\(A=\frac{1}{n}+\frac{n-1}{n}B\)

解方程

\(A=\frac{1}{n}+\frac{n-1}{n}(1+A)\)

\(\frac{1}{n}A=\frac{1}{n}+\frac{n-1}{n}\)

\(A=1+n-1 = n\)

\(B=n+1\)

游走问题4

在一张 n 个点的菊花图上游走,求从一个点⾛走到另外一个点的指望步数。

solution

1.叶子->中心:1
2.叶子->叶子A=1+B
3.中心->叶子\(B=\frac{1}{n-1}+\frac{n-2}{n-1}(A+1)\)

解方程
\(B=\frac{1}{n-1}+\frac{n-2}{n-1}(B+2)\)

\(B=\frac{1}{n-1}+\frac{n-2}{n-1}B+\frac{2(n-2)}{n-1}\)

\(\frac{1}{n-1}B=\frac{1}{n-1}+\frac{2(n-2)}{n-1}\)

\(B=1+2(n-2)=2n-3\)

游走问题5

在一个n个点的树上游走,问从根走到x的指望步数

solution

设从x走到y,则以y为根

\(f[x]\)表示第一次走到\(x\)的指望步数。

\(f[x] = \frac{1}{d[x]}+\frac{1}{d[x]}\sum\limits_{y为x的儿子}(1+f[y]+f[x])\)

游走问题6

构造一张200个点的无向图,使得上面从S走到T的随机游走指望步数$\ge$1000000

solution

相似于第一题。在链上,\(x_2=1\)因此总的步数为\(n^2\)级别。只要让\(x_2=n\)就能够达到\(n^3\)级别了。因此在最开始用\(100\)个点连出一张无向彻底图,而后用\(100\)个点连出一条链。

经典问题

经典问题1

每次随机一个[1,n]的整数,问指望几回能凑出全部数

solution
\(S=\sum\limits_{i=1}^nX_i\)

\(S\)表示总次数。\(X_i\)表示如今手里有\(i-1\)个数字。不断的取一直取到第\(i\)个数字所须要的步数

\(E(S) = \sum\limits_{i=1}^nE(X_i)\)

\(P(X_i)=\frac{n-i+1}{n}\)

\(E(x_i)=\frac{n}{n-i+1}\)

\(E(S)=\sum\limits_{i=1}^n\frac{n}{n-i+1}=\sum\limits_{i=1}^n\frac{n}{i}\)

经典问题2

随机一个长度为n的排列p,问前i个数字中p[i]是最大数字的几率。

solution

前i个数字中,每一个数字最大的几率都相同。因此p[i]是最大数字的几率就是\(\frac{1}{i}\)

经典问题3

求上题中i的个数的平方。

solution

\(X_i\)表示第\(i\)个数字是(1)不是(0)前i个数字中的最大数字。

\(E(S) = \sum\limits_{i=1}^nE(X_i)\)

$E(S^2)=\sum\limits_{i=1}^nE(X_i^2) \
=\sum\limits_{i!=j}E(X_i且X_j)+\sum\limits_{i=1}^nE(X_i)^2 \
=\sum\limits_{i!=j}\frac{1}{ij}+\sum\limits_{i=1}^n{\frac{1}{i}}^2
$

经典问题4

随机一个长度为n的排列p,问i在j后面的几率

solution

由于i与j等价,且要么i在j前面,要么j在i前面(i=j除外),因此几率为\(\frac{1}{2}\)

经典问题5

随机一个长度为 n 的排列 p,求它包含 w[1…m]做为子序列的几率

solution

w共有\(m!\)种排列方式。其中只有一种符合条件。

因此答案为\(\frac{1}{m!}\)

经典问题6

随机一个长度为 n 的排列 p,求它包含 w[1…m]做为连续子序列的几率。

solution

w的全部状况共有\(C(_n^m)m!\)种,在n中共有\(n-m+1\)个排列。因此答案为\(\frac{n-m+1}{C(_n^m)m!}\)

经典问题7

有n堆石头,第i堆个数为a[i],每次随机选一个石头而后把那一整堆都扔了,求第1堆石头指望第几回被扔。

solution

\(A[i]\)表示第\(i\)堆石头指望第几回被扔。

\(A[1]=\sum\limits_{i=1}^n[A[i]\le A[1]]\)

\(E(A[1])=\sum\limits_{i=1}^nE([A[i] \le A[1])\)

\(E(A[i]\le A[1]) = P(A[i] \le A[1])\)

\(E(A[1]) = 1 + \sum\limits_{i=2}^nP(A[i]\le A[1])\)

\(P(A[i] \le A[1]) = \frac{a[i]}{a[i]+a[1]}\)

经典问题8

随机一个长度为n的01串,每一个位置是1的几率为p,定义x 是每段连续的1的长度的平方之和。求\(E(x)\)

solution

\(f[i]\)表示前i个的答案。\(g[i]\)表示以i为结尾的1的个数。

若是第\(i+1\)个为1,那么\(g[i+1] = g[i] + 1\),\(f[i + 1] = f[i] - g[i]^2+(g[i]+1)^2=f[i]+2g[i]+1\),

不然\(g[i + 1]=0\),\(f[i+1]=f[i]\)

\(f[i+1] = f[i]+ \frac{1}{2}(2g[i]+1)\)
\(g[i+1] = \frac{1}{2}g[i]\)

经典问题9

给一个序列,每次随机删除一个元素,问第i个和第j个在过程当中相邻的几率

solution

将全部元素按照删除顺序组成一个排列。

i和j相邻至关于从i到j这\(j-i+1\)个元素所组成的子序列中,i和j位于最后。这\(j-i+1\)个元素所组成的所有可能序列共有\((j-i+1)!\)种,其中知足条件的共有\(2(j-i-1)!\)种。因此答案为\(\frac{2(j-i-1)!}{(j-i+1)!}=\frac{2}{(j-i+1)(j-i)}\)

练习题

练习题1

给定n个硬币,第i个硬币的价值为w[i],每次随机取走一个硬币,得到的价值为左右两个硬币的价值的乘积,求指望的总价值。

solution

两个硬币产生价值,只当这两个数字及其之间的全部数字中,这两个数字最后被取走。这个的几率能够由经典问题9知道。因此这个问题的答案就是\(\sum\limits_{i=1}^{n-2}\sum\limits_{j=i+2}^n\frac{2w[j]w[i]}{(j-i+1)(j-i)}\)

练习题2

有 N 个数 a[1…N],每次等几率选出两个数,而后合并成一个新的数放回来,获得的收益是新的数的值,求总收益的指望

solution

\(S=X_ia_i\)

\(X_i\)表示第i个数字产生贡献的次数。

\(E(S)=\sum\limits_{i=1}^nE(X_i)a_i\)

\(E(X_i)=P(X_i)=\sum\limits_{i=2}^n\frac{2}{i}\)

\(E(S)=\sum\limits_{i=2}^n\frac{2}{i}\sum\limits_{j=1}^na_i\)

练习题3

给定一个数列W[1…N],随机一个排列 H,若是 H[i] 比 H[i-1] 和 H[i+1] 都 大,就得到 W[i] 的收益,求指望收益

solution

\(E(S)=\sum\limits_{i=1}^nP(H[i]>H[i-1]\&\&H[i]>H[i+1])W[i]\)

由于\(H[i],H[i-1],H[i+1]\)这三个数字等价,且必定有一个最大的。因此\(H[i]\)最大的几率就是\(\frac{1}{3}\),因此答案为\(\frac{1}{3}\sum\limits_{i=1}^nw[i]\)

练习题4

codeforces280C

给出一棵树,一开始每一个点都是白的,每次选一个⽩点将他子树里全部点染 黑,求指望几回染黑整个树

solution

对于一个点\(x\),只有当\(x\)和其全部祖先中\(x\)最早被染黑。\(x\)才会产生贡献。几率为\(\frac{1}{dep_i}\)

\(E(S)=\sum\limits_{i=1}^nE(X_i)\)

\(X_i\)表示第\(i\)个点被染黑的指望操做次数。

\(E(X_i)=\frac{1}{dep[i]}\)

\(E(S)=\sum\limits_{i=1}^n\frac{1}{dep[i]}\)

课后练习

换教室

noip2016

solution

\(f[i][j][0/1]\)表示前i个时间段,是(1)否(0)申请,指望花费的最小体力。
而后大力分类讨论转移便可。

具体转移方程以下

\(f[i + 1][j][0] = min(f[i][j][0] + dis[c[i]][c[i + 1]],\\f[i][j][2] + dis[d[i]][c[i + 1]] * K[i] + dis[c[i]][c[i + 1]] * (1 - K[i]))\)

\(f[i + 1][j + 1][3] = min(\\f[i][j][0] + \\dis[c[i]][d[i + 1]] * K[i + 1] + \\dis[c[i]][c[i + 1]] * (1 - K[i + 1]),\\f[i][j][4] + \\dis[d[i]][d[i + 1]] * K[i] * K[i + 1] + \\dis[d[i]][c[i + 1]] * K[i] * (1 - K[i + 1]) + \\dis[c[i]][d[i + 1]] * (1 - K[i]) * K[i + 1] + \\dis[c[i]][c[i + 1]] * (1 - K[i]) * (1 - K[i + 1]))\)

区间交

定义一种随机生成区间的方法以下。\(L=random(1,N),R=random(L,N)\)。经过这种方法随机出两个区间,问这两个区间相交的几率。\(N \le 1000000\)

solution

将问题取反,转化为求区间不相交的几率。

也就是须要一个区间的左端点小于另外一个区间的右端点。

\(f[i]\)表示右端点小于等于i的区间的几率

\(ans=\frac{1}{n}\sum\limits_{i=1}^{n - 1}f[i]\)

\(g[i]\)表示右端点为\(i\)的区间的几率。

\(f[i]=\sum\limits_{j=1}^ig[i]\)

\(g[i]=\frac{1}{n} \sum\limits_{l=1}^n\frac{1}{n-l+1}\)

收集邮票

luogu4550

有n(\(n\le 10000\))种不一样的邮票,皮皮想收集全部种类的邮票。惟一的收集方法是到同窗凡凡那里购买,每次只能买一张,而且买到的邮票到底是n种邮票中的哪种是等几率的,几率均为1/n。可是因为凡凡也很喜欢邮票,因此皮皮购买第k张邮票须要支付k元钱。
如今皮皮手中没有邮票,皮皮想知道本身获得全部种类的邮票须要花费的钱数目的指望.

solution

\(f[i]\)表示如今手里已经有\(i\)张邮票,取到\(n\)张所须要的步数。有\(\frac{n-i}{n}\)的几率取到新的邮票。因此指望取\(\frac{n}{n-i}\)次。因此\(f[i] = f[i + 1] + \frac{n}{n-i}\)

\(g[i]\)表示如今手里有\(i\)张邮票。取到\(n\)张所须要花费的钱。这里每次取得价格依旧从1开始记。只要每次取都后面取时的花费+1就能保证知足题意了。有\(\frac{i}{n}\)的几率取到已有的邮票。有\(\frac{n-i}{n}\)的几率取到新的邮票。因此\(g[i] = \frac{i}{n}(g[i]+f[i]+1)+\frac{n-i}{n}(g[i+1]+f[i+1]+1)=\frac{i(f[i]+1)}{n-i}+f[i+1]+g[i+1]+1\)

Puzzles

CF696B

solution

将某个节点x与其兄弟进行随机排列以后,对于其余的任意一个兄弟y,x在y前面的几率都为\(\frac{1}{2}\),若是\(x\)\(y\)后面,那么访问完整棵\(y\)子树后才会访问\(x\)节点。用\(siz[i]\)表示以i为根的子树的大小。\(ans[x] = ans[fa]+1+\frac{1}{2}(siz[fa]-siz[x] - 1)\),(\(fa\)表示\(x\)的父亲)

Bad Luck Island

CF540D

厄运岛上居住着三种物种:Rock、Scissors和Paper。在某些时刻,两个随机的个体相遇(全部的个体均可以平等地相遇),若是他们属于不一样的物种,那么一个个体杀死另外一个:Rock杀死Scissors,Scissors杀死Paper,Paper杀死Rock。你的任务是为每个物种肯定在足够长的时间以后,这个物种将是惟一居住在这个岛上的物种的几率。

solution

\(f[i][j][k]\)表示还剩下i个Rock,j个Scissors,k个Paper的几率。而后枚举两个物种,计算相遇的几率转移便可。计算几率时注意减去相同的两个物种相遇的状况。

Fish

有n条鱼,天天会有两条鱼相遇,任意两条鱼相遇的几率都是相同的。两条鱼i,j相遇以后,会有\(a[i][j]\) 的几率i吃掉j,有\(1-a[i][j]\)的几率j吃掉i。对于每条鱼x,问最后剩下x的几率。

\(1\le n\le 18\)

solution

状压一下。枚举当前状态下相遇的两条鱼,计算几率,而后转移便可。

相关文章
相关标签/搜索