若某事件发生的概率为P,则期望为1/P。
题目链接:https://vjudge.net/contest/222921
密码:ECJTUACM
A:
有若干个传送门,你会随机选择其中一扇,值为a的传送门会让你在a分钟后离开, 值为-a的传送门会让你在a分钟后回到起点,求离开的期望时间。
若能离开的传送门数为a1,不能离开的传送门数为b1。
传送离开的概率为a1/(a1+b1)。
则离开的期望传送次数为(a1+b1)/a1次。
求出每次传送的平均时长,与期望传送次数相乘即可。
题目要求输出最简分数,用gcd处理一下即可。
B:
有编号为1到n的金矿,你现在在1号,你可以挖掘你所在金矿的金子。
你掷一个六面骰子来决定你移动的步数,如果骰子的结果超过n,则重掷。
求挖到金矿总量的期望。
某金矿的期望值会取决于下一次能到达金矿的平均期望:
a[i]+=1/6*a[i+1]+ 1/6*a[i+2]+……+1/6*a[i+6]
所以要从大到小处理。
如果上限超过n,则做出对应调整。
为什么要从后往前推,解释如下:
先举个反例:
假如我们令方程为
a[i]+=1/6*a[i-1]+ 1/6*a[i-2]+……+1/6*a[i-6]
a[2]=a[1]+a[2]
a[3]=0.5a[1]+0.5a[2]+a[3]=a[1]+0.5a[2]+a[3]
那么
a[4]=1/3a[1]+1/3a[2]+1/3a[3]+a[4]=a[1]+0.5a[2]+1/3a[3]+a[4]
然而实际上a[4]的期望并不是这样。
如果1到4
从1开始,到2的概率为1/3,到3的概率为1/3加上2到3的概率,为0.5。
所以正确的是a[4]=a[1]+1/3a[2]+0.5a[3]+a[4],与正推矛盾。
为什么正推会错?看到a[2]这里,a[2]认为,a[1]只能到a[2],你从a[2]的角度看,a[2]的来源只有a[1],这是没错的,但状态转移方程还会额外认为a[1]只能到a[2];a[3]认为a[1],a[2]只能到a[3],产生了后效性,这就是致命的逻辑错误。
为什么a[i]到a[i+1]—a[i+6]是对的?
因为逻辑完整,无后效性。
因为a[i]发散到后六个位置的概率,就是掷一个骰子掷出某个数的概率。
而前六个位置收束到一个位置,是掷六个骰子,第一个掷出6,第二个掷出5……,第六个掷出1的概率,看上去每次好像都是1/6,但每一个状态实际上都是不相关的,所谓的正推转移方程只是看上去对的伪命题。
C:
一个数随机除它的任意一个因数,直到结果为1,求要除的期望次数。
与上题不同,某个数除到1的期望取决于比它小的数的期望,所以从小到大处理。
a[i]=(a[1]+1+a[x2]+1+a[x3]+1+……+a[xn]+1+a[i]+1)/(因数个数)
注意,因数是包括1和本身的,不能忽略。
由于题目数据很大,要预处理出所有结果。
并且处理要使用一点技巧节省时间。
D:
01背包的期望版
劫匪想抢银行,他不希望被捕概率超过p的情况下获得最多的金钱。
每间银行有金钱和被捕概率pi。
概率求法:
P=1-(1-p1)*(1-p2)*(1-p3)*……*(1-pn)
后面连乘算出不被捕概率,减去得到被捕概率。
E:
掷一个n面骰子,求每个面都出现一次要掷的期望次数。
有m面未出现过,则掷出未出现面的概率为m/n。
则出现一个之前没出现的面期望次数为n/m。
令m为1到n再对期望求和。
F:
在一个三维空间内均匀分布着关着的灯,随机选取k次,一次选取两个点,将两个点内所有的灯的开关按一次,问最后亮着的灯的期望数目。
也就是求开关被按奇数次的灯的期望数目。
对于坐标为(x,y,z)的点,
其在x轴上被选中的概率为(n*n-(x-1)*(x-1)-(n-x)*(n-x))/n*n
由次三重循环求出每一个位置被按到的概率p。
对于p,我们要求出该位置改变奇数次的概率。
令f[i]为i次后,该位置为暗,g[i]为i次后,该位置为亮
f[i]=(1-p)*f[i-1]+p*g[i-1]
gi]=(1-p)*g[i-1]+p*f[i-1]
已知边界f[0]=1,g[0]=0
我们算出g[k]即可,可以直接用矩阵算。
当然也可以推导,推导的结果为
ans+=0.5*(1-pow(1-2*p,1.0*k));
G:
期望版最长路,迪杰斯特拉或Floyd都可以求解
H:
你是瞎子,有两种棍子,一种拿过后可以扔出去,另一种不能。
每根棍子有重量,要求你拿过所有棍子,求你拿过棍子的期望重量总和。
扔出去的棍子只会拿一次,所以其贡献的期望是1*重量。
不能扔出去的棍子类似前面的n面骰子,我们可以轻易知道拿出一根之前没摸过的概率和期望次数,再乘上重量即可。
I:
你接不住下一球的概率为p,如果连接k1球或连空k2球时结束,求发球的期望次数
令f[i]为连接中i球时还要发球的期望次数,g[i]为连空i球时还要发球的期望次数。
f[i]= (1-p) *(f[i+ 1]+1)+ p *(g[1]+1)=(1-p)*f[i+1]+p*g[1]+1
意思为(1-p)的概率接到,此时期望为f[i+1]加上这一球,所以+1,p的概率空,那么相当与连空1球的期望加上这一球,所以+1.
g[i]= p *(g[i+ 1]+1)+ (1-p) *(f[1]+1) =p*g[i+1]+(1-p)*f[1]+1
边界f[k1]=0,g[k2]=0
令q=1-p
可以推出f[1]=(1-q^(k1-1))*(p*g[1]+1)/(1-q)
g[1]=(1-p^(k2-1))*(q*f[1]+1)/(1-p)
答案为f[0]或g[0]
J:
不会,嘤嘤嘤。