dp:概率与期望

若某事件发生的概率为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:

不会,嘤嘤嘤。

猜你喜欢

转载自www.cnblogs.com/qq936584671/p/8985804.html