• 概率与数学期望笔记


    概率

    定义

    设样本空间为(Ω),若对于(Ω)中的每一个随机事件(A),都存在实数函数值(P(A)),满足:

    (P(A) ge 0)

    (P(Ω) = 1)

    对于若干个两两互斥的事件(A_1)(A_2),...存在(sum P(A_i)=P(igcup A_i))

    则称(P(A))为随机事件(A)发生的概率

    性质

    1.记(A)的互斥事件为(A^c),则有(P(A)+P(A^c)=1)

    2.对于任意两个事件(A)(B)(P(Aigcup B)=P(A)+P(B)-P(Aigcap B))

    3.对于互斥的(n)个事件(A_1,A_2....A_n),有(P(A_1igcup A_2 igcup ... igcup A_n)=P(A_1)+P(A_2)+P(A_3)+...+P(A_n))

    4.对于事件(A)(B),在(B)发生的前提下,(A)发生的概率(P(A|B)=frac {P(Aigcap B)}{P(B)})

    5.对于无关事件(A)(B)(P(A)=P(A|B)=P(A|B^c))(P(Aigcap B)=P(A)*P(B))对于(n)个同理

    6.独立重复实验的伯努利大数定理

    在一次实验中发生某事件概率为(P),不发生概率为(Q),则(n)次实验至少发生(m)次的概率为((P+Q)^n)展开后从(P^n)(P^mQ^{n-m})各项相加之和

    若一次实验中某事件发生概率为(P),那么(n)次重复独立实验中此事件恰好发生(m(0le m le n))次的概率为(P_n(m)=C_n^m*P^m*(1-P)^{n-m})

    数学期望

    定义

    若随机变量(X)的取值有(X_1,X_2...X_n),一个随机事件可以表示为(X=X_i),概率(P(X=X_i)=p_i),则称(E(X)=sum p_ix_i)为随机变量(X)的数学期望

    说人话:一个事件所有的可能取值的值乘概率然后相加

    性质

    数学期望是线性函数,对于任意随机变量满足(E(aX+bY)=a*E(X)+b*E(Y)),对于不相关随机变量满足(E(X*Y)=E(X)*E(Y))

    注意:平方的期望不等于期望的平方

    例题

    OSU

    对于一个确定的01串,定义其价值为:所有极长的全1段的长度的立方和。现有一个长度为(n)的未确定的01串,第(i)个位置有(p_i)的概率是1,否则是0,求这个串的期望价值。

    (osu_i)表示1到(i)的期望价值,那么如果1到(i-1)结尾的全1段的长度为(x),那么当(i)位置取1时,会使价值增加((x+1)^3-x^3=3x^2+3x+1)因此在维护期望价值时,同时维护一下结尾的全1段的期望长度和长度平方的期望即可但是刚刚提到了平方的期望不等于期望的平方,因此需要用同样的方法来求,当(i)位置取1时,会使平方的期望增加((x+1)^2-x^2=2x+1)

    #include<bits/stdc++.h>
        
    #define LL long long
        
    #define _ 0
        
    using namespace std;
        
    /*Grievous Lady*/
        
    template <typename T> void read(T & t){
        t = 0;int f = 1;char ch = getchar();
        while(ch < '0' || ch > '9'){if(ch == '-')f =- 1;ch = getchar();}
        do{t = t * 10 + ch - '0';ch = getchar();}while(ch >= '0' && ch <= '9');t *= f;
    }
        
    const int kato = 1e6 + 10;
    
    int n;
    
    double yuni;
    
    double a[kato] , b[kato] , osu[kato];
    
    inline int Ame_(){
        read(n);
        for(int i = 1;i <= n;i ++){
            scanf("%lf" , &yuni);
            a[i] = (a[i - 1] + 1) * yuni;
            b[i] = (b[i - 1] + 2 * a[i - 1] + 1) * yuni;
            osu[i] = osu[i - 1] + (3 * b[i - 1] + 3 * a[i - 1] + 1) * yuni;
        }
        printf("%.1lf
    " , osu[n]);
        return ~~(0^_^0);
    }
        
    int Ame__ = Ame_();
        
    int main(){;}
    
  • 相关阅读:
    ubuntu下如何安装hg(mercurial)?
    vi启动时报错:YouCompleteMe unavailable: requires Vim 7.4.1578+如何处理?
    linux中如何配置vim的别名为vi?
    linux shell中如何让$就表示为$呢?
    redhat 7.6下如何更新YUM源(仓库)?
    redhat下如何查看red hat版本号?
    javascript快速入门11--正则表达式
    javascript快速入门10--运算符,语句
    javascript快速入门9--引用类型
    javascript快速入门7--ECMAScript语法基础
  • 原文地址:https://www.cnblogs.com/Ame-sora/p/13490707.html
Copyright © 2020-2023  润新知