ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

概率与期望

2021-09-28 07:31:29  阅读:148  来源: 互联网

标签:概率 期望 int sum 条件期望 include mathrm


概率与期望

在做期望题时,一般都会用到期望的线性性.  

即 $\mathrm{E(X+Y)=E(X)+E(Y)}$.   

除此之外,还需知道条件期望公式 $\mathrm{E(X|Y)}$, 即 $\mathrm{Y}$ 为样本空间的期望.    

然后有 $\mathrm{P(A)E(X|A)=\sum xP((X=x) \bigcap A_{i}}$

如果想不清楚具体过程不妨列出全集,要求的东西,最后用条件期望整合到一起.   

 

例题:luoguP1654 OSU!

$\mathrm{ans=E(X)}$.

$\mathrm{X}$ 表示所有可能的 01 串的情况,为全集.  

那么,每个全集就是一些以 $\mathrm{r}$ 为右端点的极长 $1$ 的立方和.  

$\mathrm{X[i]=\sum len[r]^3}$.   

所以 $\mathrm{ E(X)=\sum E(len[r]^3) }$

这个可以用 $\mathrm{E(len[r-1]^3)}$ 来推到当前的 $\mathrm{r}$.  

然后就用条件期望整合:值为 $\mathrm{r-1}$ + 1 的期望立方和,概率为当前 $\mathrm{r=1}$.  

最后扫一遍即可.   

#include <cstdio>
#include <cstring>
#include <algorithm>
#define N 100009 
#define ll long long 
#define setIO(s) freopen(s".in","r",stdin) 
using namespace std; 
int n ; 
double p[N],len1[N],len2[N],len3[N]; 
int main() {
    // setIO("input");
    scanf("%d",&n);    
    for(int i=1;i<=n;++i) {
        scanf("%lf",&p[i]); 
    }
    p[n + 1] = 0; 
    double ans = 0.0; 
    for(int i=1;i<=n;++i) {
        len1[i] = (len1[i-1] + 1) * p[i]; 
        len2[i] = (len2[i-1] + 1 + 2 * len1[i - 1]) * p[i];  
        len3[i] = (len3[i-1] + 1 + 3 * len1[i - 1] + 3 * len2[i - 1]) * p[i];  
        ans += len3[i] * (1 - p[i + 1]);  
    }
    printf("%.1f\n", ans); 
    return 0; 
}

  

 

标签:概率,期望,int,sum,条件期望,include,mathrm
来源: https://www.cnblogs.com/brady12/p/15346143.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有