noip专题复习之数学(5)——概率与数学期望

1.全概率公式:

将样本分成若干个不相交的部分\(B1,B2,...,Bn\),则\(P(A)=P(A|B1)*P(B1)+P(A|B2) * P(B2)+...+P(A|Bn)*P(Bn)\)。(\(P(A|B\))是指在\(B\)事件发生的条件下,事件\(A\)发生的概率。

使用全概率公式的关键是“划分样本空间”,只有把所有可能不重不漏地进行分类,并算出每个分类下事件发生的概率,才能得出该事件发生的总概率。

2.数学期望:

简单地说,随机变量X的数学期望EX就是所有可能值按照概率加权的和

比如一个随机变量有1/2的概率为1,1/3的概率为2,1/6的概率为3,则这个随机变量的数学期望为11/2+21/3+3*1/6=5/3.

(1)期望的线性性质:\(E(X+Y)=EX+EY\)

(2)全期望公式:\(E(Y)=E(E(Y|X))\)

(证明需用到微积分,暂时放一放)

例题1:麻球繁衍

题意:有\(k\)只麻球,每只活一天就会死亡,临死之前可能会生出一些新的麻球。具体来说,生\(i\)个麻球的概率为\(P_i\)。给定\(m\),求\(m\)天后所有麻球均死亡的概率。注意:不足\(m\)天时就已全部死亡的情况也考虑在内。

分析:由于每只麻球独自存活,只需求出一开始只有\(1\)只麻球,\(m\)天后全部死亡的概率\(f(m)\)即可。由全概率公式有:

\[f(i)=P_0+P_1*f(i-1)+P_2*f(i-1)^{2}+P_3*f(i-1)^{3}+...+P_{n-1}*f(i-1)^{n-1} \]

其中\(Pj*f(i-1)^j\)的含义是这只麻球生了\(j\)个后代,他们在\(i-1\)天后全部死亡的概率。

最终答案应为\(f(m)^k\)

\(Code:\)

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath> 
using namespace std;
const int N=1005;
int T,n,k,m;
double p[N],f[N];
inline double fast_pow(double a,int p){
    double ans=1;
    for (;p;p>>=1,a*=a)
      if (p&1)
        ans*=a;
    return ans;
}
int main(){
    scanf("%d",&T);
    for (int t=1;t<=T;++t){
        scanf("%d%d%d",&n,&k,&m);
        for (int i=0;i<n;++i) scanf("%lf",&p[i]);
        memset(f,0,sizeof(f));
        f[0]=0; f[1]=p[0];
        for (int i=2;i<=m;++i)
          for (int j=0;j<n;++j) f[i]+=p[j]*fast_pow(f[i-1],j);
        printf("Case #%d: %0.7lf\n",t,fast_pow(f[m],k));
    }
}

posted on 2019-10-05 07:49  dolires  阅读(741)  评论(0)    收藏  举报

导航