数学期望
一.数学期望定义
1.离散型随机变量
设离散型随机变量 \(X\) 的概率分布为 \(p_i = P\{ X = x_i \}\),若和式$$\sum x_i \cdot p_i$$绝对收敛,则称其值为 \(X\) 的 期望,记作 \(E_X\)。
——oiwiki
说白了就是概率乘权值。
离散型随机变量的期望有如下几条优美的性质:
\(E_{X+Y}=E_X+E_Y\)
\(E_{aX+bY}=a \cdot E_X+b \cdot E_Y\)
若随机变量 \(X,Y\) 的期望存在且 \(X,Y\) 相互独立,则有$$E_{XY} = E_X \cdot E_Y$$注意:上述性质中的独立性并非必要条件。
对于随机事件 A,考虑其示性函数 $I_A:I_A(\omega) = $
\[\begin{cases}
1, & \omega \in A \\
0, & \omega \notin A \\
\end{cases}
\]
根据定义可以求得其期望 \(E_{I_A} = P(A)\)。这一转化在实际应用中非常常见。
下面我们举个栗子:
扔一个标准的、六个面上分别有1~6六个数字的骰子,向上的那面上的数字的期望就是\(1 \times \frac 16 + 2 \times \frac 16 + 3 \times \frac 16 + 4 \times \frac 16 + 5 \times \frac 16 + 6 \times \frac 16=3.5\)。
2.连续性随机变量
它的定义式长这样:
设连续型随机变量 \(X\) 的密度函数为 \(f(x)\)。若积分\(\int_{\mathbb{R}} xf(x) \text{d} x\)绝对收敛,则称其值为 \(X\) 的 期望,记作 \(E_X\)。
然鹅由于本蒟蒻没学过积分,所以看上去并不是很好懂。。。这一块得让数学dalao讲。
二.应用
说白了,期望就只是一个数学名词、定义,题目很多都是根据定义推式子。
例一.P3802
我们先考虑第七次释放魔法时触发大招的概率:
先假设是按照1、2、3、4、5、6、7的顺序触发,令\(N=\sum\limits_{i=1}^{7} {a_i}\)那么:
\(P_7^{'}=\frac{a_1}{N} \times \frac{a_2}{N-1} \times \frac{a_3}{N-2} \times \frac{a_4}{N-3} \times \frac{a_5}{N-4} \times \frac{a_6}{N-5} \times \frac{a_7}{N-6}\)
由于触发大招的元素顺序不重要,且分子可以随意交换,所以这七种元素触发大招时,即使顺序不同,对于一种特定顺序,触发概率相等,所以:
\(P_7=7! \times P_{7}^{'}=7! \times \frac{a_1}{N} \times \frac{a_2}{N-1} \times \frac{a_3}{N-2} \times \frac{a_4}{N-3} \times \frac{a_5}{N-4} \times \frac{a_6}{N-5} \times \frac{a_7}{N-6}\)
接下来我们考虑第八次触发大招的概率。因为大招之间互不影响,所以第八次触发大招相当于前面浪费一个魔法,而这个魔法的种类无所谓,也就是:
\(P_8=\frac{a_1}{N}P_7+\frac{a_2}{N}P_7+\frac{a_3}{N}P_7+\frac{a_4}{N}P_7+\frac{a_5}{N}P_7+\frac{a_6}{N}P_7+\frac{a_7}{N}P_7=P_7\)
发现没有?第八次触发大招的概率和第七次相等。以此类推,在第任意次触发大招的概率都和在第七次触发大招的概率相等。
既然概率算完了,那期望就相当于\(\sigma\)概率×权值,很显然每次触发大招的权值为1,所以最终答案\(ans=(n-6)P_7\)。
代码:
点击查看代码
#include
using namespace std;
const int N=15;
int a[N],SUM;
double ans,fac=1;
int main(){
for(int i=1;i<=7;i++){
scanf("%d",&a[i]);
SUM+=a[i];
fac=fac*i;
}
if(SUM<=6){//不够7点魔法值自然无法触发大招
printf("0.000\n");
return 0;
}
ans=1.00000;
for(int i=1;i<=7;i++){
//计算P7'
ans=ans*a[i]*1.00000/(SUM-i+1.00000);//分清SUM和n
}
ans=ans*1.00000*fac*(SUM-6.00000);
printf("%.3lf",ans);
return 0;
}
例二.P5011
看似很难,实则一点都不简单
因为模数找到的这个题,黑色的数字越看越红。
我们可以把单独一个动作的贡献和组合技的贡献拆开分别计算期望。这样根据期望的线性性,总期望就是两个期望累加。
先看单独一个动作的贡献总和的期望:
下面记\(sum=\sum\limits_{i=1}^{k} {a_i}\)。
某个位置出现第\(i\)种动作的概率是\(\frac 1k\),所以这个位置的贡献期望为\(\frac 1k \times sum\),共有n个位置,所以这部分的总期望为\(\frac nk \times sum\)。
接下来是组合技的贡献总和的期望:
刚才我们说过某个位置出现第\(i\)种动作的概率是\(\frac 1k\),所以某个位置出现\(i、i+1\)(\(i=k\)时为\(k、1\))组合技的概率就是\(\frac {1}{k^2}\)。那么这个位置出现组合技的期望就是\(\sum\limits_{i=1}^{k}{a_i+a_{ (i+1) mod k} } \times \frac {1}{k^2}\)。
我们化简一下上面的式子,由于每个动作\(i\)都会在上面的累加中被统计两次,所以每个位置出现组合技的期望又可以写做\(sum \times \frac {2}{k^2}\)。共有\(n-1\)个位置可以出组合技,所以这部分的期望就是\((n-1) \times sum \times \frac {2}{k^2}\)。
将两部分期望相加就是答案。
至于如何求一个分数的mod,也是很好理解的:将分子/分母变成分子*inv(分母)。(不然这个题为什么要给求逆元代码)
最后就是这个很毒瘤的n的取值范围。。。这个时候就体现出快读的好处了,可以一边读入一边取模,具体怎么操作,每次x=x*10+c-'0'时将x取模就好了。
\(\color{red}{祝愿我们伟大的祖国繁荣昌盛!在此提前祝贺祖国母亲76岁生日快乐!}\)
代码:
点击查看代码
#include
#define int long long
using namespace std;
const int mod=19491001;
const int N=1e6+6;
inline int read(){
int x=0;char c=getchar();
while(c<48) c=getchar();
while(c>47) x=(((x<<1)+(x<<3))%mod+(c^48))%mod,c=getchar();
return x;
}
int n,k,a[N],ans1,ans2,sum;
inline int qpow(int x,int y){
int ans=1;
while(y){
if(y&1) ans=(ans*x)%mod;
x=(x*x)%mod;y>>=1;
}
return ans;
}
inline int inv(int x){
return qpow(x,mod-2);
}
signed main(){
n=read(),k=read();
for(int i=1;i<=k;i++){
a[i]=read();
sum=(sum+a[i])%mod;
}
ans1=n*sum%mod*inv(k)%mod;
ans2=2*sum%mod*((n-1)%mod+mod)%mod*inv(k*k%mod)%mod;
printf("%lld",(ans1+ans2)%mod);
return 0;
}
时间似乎不太够。。。
其他题目:
ABC411E
B4337
P4007
P3211
以后可能还会不定时更新。
lol宝石打野出什么装备 英雄联盟打野宝石玩法 已解决
上上谦火锅(新梅联合广场店)