zoukankan      html  css  js  c++  java
  • 期望简述

    概念

    数学期望,简称期望,就是指在实验中事件发生的概率乘以该事件的价值的总和,可以反应随机变量的平均取值大小

    离散型变量:若一个变量的值域为一段或几段区间,且该变量的取值是有限或无限个,但是能够按一定次序枚举列出,则称其为离散型随机变量,对应的,它的每个取值的概率 (p(i)) 与它的对应取值 (a_i) 的乘积之和,即为期望值( (E(X)) ),称为离散型随机变量的数学期望,即:(E(X)=sum_{i=1}{a_i imes p(i)})

    连续型变量:在该变量的值域上,无法按照某种次序将这些变量的取值一一列出,则称其为连续型随机变量

    性质

    • 一个常量的期望等于它本身(显然,常量被取到的概率为 (1)

    • 和的期望等于期望的和,即 (E(X+Y)=E(X)+E(Y)) (这个性质最为常用)

    • (E(CX)=C imes E(X)) ( (C) 为一个常量,(X) 为一个事件)

    • (X , Y) 为两个相互独立的事件,则有 (E(XY)=E(X)E(Y))

    例题

    https://www.luogu.com.cn/problem/P6858

    题意简述:

    有一个长为 (n+m)(01) 串,其中有 (n)(1)(m)(0) ,每次可以进行一次操作,可以将一个 (0) 删除,同时将串中剩余的所有 (0) 都变为 (1) ,或者是将一个 (1) 变为 (0) ,等概率选择一个位置进行操作,要将该串全部删除,求期望操作次数

    分析

    首先考虑 (m=0) 的情况,那么在串中就只有 (n)(1) ,进行一次操作,无论选取哪个位置,都会变为 (n-1)(1) ,以及 1 个 (0) ,对于下一次操作,就有 (frac{1}{n}) 的概率选中为 (0) 的位置,将其删除,变为含有 (n-1)(1)(01) 串,或者是以 (frac{n-1}{n}) 选中一个为 (1) 的位置,将其变为 (0) ,但同时,该串中的另一个 (0) 就会变为 (1) ,仍然为 (n-1)(1)(1)(0) 的串,设 (g(i)) 为含有 (i)(1) ,不含 (0) 的串,则期望操作数为 : (g(i) = 1 + frac{1}{i} imes g(i-1) + frac{i-1}{i} imes g(i))

    经过移项整理,我们可以得到 (g(i) = i + g(i-1) + 1) ,将 (g(0)=0) 代入推导,可得 (g(i)=frac{(i+3) imes i}{2})

    之后,我们考虑 (m!=0) 时,设 f(i) 为有 (n)(1)(i)(0) 的串需要操作的期望数,显然,我们有 (frac{i}{n+i}) 的概率选中 (0) ,将其变为一个 (n-1)(1)(i)(0) 的串 ,对该串的期望操作数即为 (f(i-1)) ,同时,我们有 (frac{n}{n+i}) 的概率选到一个 (1) ,将其变为 (0) ,同时将其余的 (i)(0) 变为 (1) ,变为一个 (n+i-1)(1)(1)(0) 的串,此时,该串的期望操作数就是 (g(n+i)-1)

    由此,我们可以得到一般的递推式:设 (f(i)) 表示有 (n)(1)(i)(0) 的串的期望操作次数,则 (f(i)=1+frac{i}{n+i} imes f(i-1) + frac{n}{n+i} imes (g(n+i)-1))(f(0)=g(n))

    递推即可

    https://www.luogu.com.cn/problem/P6154

    题意简述

    定义一个图中的一条路径长度为经过的边数,在图中等概率地选择一条路径(路径的起点与终点可以相同),求一个有向无环图的期望路径长度

    分析

    对于整个图来说,因为期望的和等于和的期望,那么设 (sum) 为所有路径长度的总和, (cnt) 为路径数量,则期望为 (E(X)=frac{sum}{cnt})

    只需维护以 (i) 为起点的路径数及其路径长度总和,记忆化搜索即可

    Code

    ll a[maxn],b[maxn];//a[]表示以 i 为起点的路径长度总和,b[] 表示以 i 为起点的路径总数
    vector<ll> e[maxn];//存图
    
    inline void dfs(ll x)//记忆化搜索
    {
    	if(b[x]) return ;
    	b[x]=1;
    	for(int i=0;i<e[x].size();i++)
    	{
    		ll y=e[x][i];
    	
    		dfs(y);
    		
    		(a[x]+=a[y]+b[y])%=mod;
    		(b[x]+=b[y])%=mod;
    	}
    }
    
  • 相关阅读:
    Glide优化
    Java多线程知识点
    Android知识点
    Gradle的一些技巧和遇到的问题
    Python用Django写restful api接口
    Python写爬虫爬妹子
    用最简单的例子说明设计模式(三)之责任链、建造者、适配器、代理模式、享元模式
    【Python】扫描指定文件夹下特定后缀的文件
    【Python】生成多级树结构的xml文件
    【转】【Linux】安装pyinstaller
  • 原文地址:https://www.cnblogs.com/jd1412/p/13874222.html
Copyright © 2011-2022 走看看