何为数学期望
E(x)表示某个东东的数学期望,该东东共有n种情况,每种情况的值为
vi,出现的概率为
pi,则
E(x)=∑i=1npivi
这样,对于等概率的问题,我们就有一种暴力的思路,枚举每一种情况,算出其值,记录方案总数,然后将值的总和除以方案数便可以得到期望值了。
但有一个很重要的问题:会超时
于是我们要引入这样一句话:和的期望=期望的和
怎么理解呢?
我们来考虑一个问题(这是我在某场模拟赛里面看到的,略有改动)
有A,B两支队伍,都有n人,A中每个队伍的人的战力值为
Ai,B中每个队伍的人的战力值为
Bi,共有n场比赛,每场比赛中胜方为能力值较大的人,得到的分数定义为
A⇐⇒B,A表示A队参加的人,B表示B队参加的人。
每个人只能参加一场比赛,每个人的对手都是随机而等概率的,例如A队有A1和A2两个人,B队有B1和B2两个人,那么(A1 vs B1,A2 vs B2)和(A1 vs B2,A2 vs B1)的概率都是均等的50%。
求A队得分减去B对得分的期望值。
(n≤1000,Ai,Bi≤40000)
emm,依照上面的思路,我们可以枚举每一种组合方式,然后计算,时间复杂度为
O(n!),明显超时。
首先,
EA−B其实是等于
EA−EB,
EA表示A队得到的分数,这里体现了粗体字的那句话。
而且,我们发现,对于某种情况
Ai⇐⇒Bj,发生的情况有
(n−1)!,且共有
n!种情况,所以其贡献为
n!Ai⇐⇒Bj×(n−1)!⇒nAi⇐⇒Bj
那么
EA=∑i=1n∑j=1nnAi⇐⇒Bj(Ai>Bj)
EB也是同理。
这里也是粗体话一种体现。
其实这道题的
Ai⇐⇒Bj,是
(Ai−Bj)2,然后
n<=5×105,有兴趣的dalao可以想一下。
题目描述
再来想一个问题,一个商店开展一个促销活动,要你集齐n种印章,每次购买商品有几率获得n种中的一种,每种获得的概率都相同,有可能会重复获得一种印章,问集齐n中印章所需要的购买次数的数学期望值。
数据范围
n≤105
这道题讨厌在——不能水分,因为你不能枚举每一次的可能,然后统计(有可能要无限次)
所以我们可以用动态规划解决。
用
f(i)表示还剩下i中印章需要集齐,所需要的次数的数学期望。
-
f(n)=0,原因不解释
-
对于
∀i≤n,考虑购买一次的情况,有
ni的慨率得到一个新,即没有得到过的印章,剩下
nn−i的概率得到之前得到过的印章。所以得到等式
f(i)=nif(i+1)+nn−if(i)+1
⇒n×f(i)=i×f(i+1)+(n−i)×f(i)+n
⇒i×f(i)=i×f(i+1)+n
⇒f(i)=f(i+1)+in
这样就能够解决这个问题了,当然,化简之后就能得到一条n个分数和的式子,之后说不定有更快的方法,但本人太菜,想不到了。
当某些数学期望的问题难以进行枚举情况并计算的,我们可以考虑dp
说到动态规划,来想一个更难的问题:
题目描述
有
c种颜色,
n个位置,每个位置的初始颜色为1,有
k次操作,每次操作选择一个区间
[l,r]中的某些位置,可以不选,为之涂上随机的颜色,若颜色为
a的位置涂上了颜色
b,则变为
abmodc,求k次涂色后,所有位置的颜色编号之和的期望值
数据范围
n,k,c≤100
依然按dp方向想,很容易想到是
f(i,j,k)表示第
i个位置第
j次染色,染为
k颜色的概率。此方法时间复杂度太高,不能接受。
但是,我们发现:任意两个位置,涂相同的次数,最后转为相同的颜色,其概率是相同的,所以第一维的状态并不需要,所以状态改为
f(i,j)表示操作i次,最后颜色变为j的概率。
-
f(0,1)=1,这是毫无疑问的
-
∀i+1>0,有两种情况,要么就是没有选到,要么就是选到之后改为一种新的颜色,两种情况概率都为
21,而第二种情况中,有
c1的概率涂成某种颜色
k,于是得到式子(不能讲状态转移方程):
-
f(i+1,j) += 21f(i,j)
-
f(i+1,j×kmodc) += 2c1f(i,j)
用
cnti表示第i个位置可能被操作的最多次数,则最后的答案便是:
∑i=1n∑j=1cf(cnti,j)×j
本人数学不好,若有讲得不对的,欢迎各位dalao指正