zoukankan      html  css  js  c++  java
  • 期望自学

    最近觉得期望特别玄学,特地放个博客慢慢整理

    仅仅是给自己看,所以文中可能有很多概念性的(+就是错了)的错误,如果有大佬看见还望指出。。。

    期望的实际意义

    实验重复无数次的平均权值,随着发生次数的上升,最终平均值会无线接近一个数,期望

    我的理解

    加权平均数。。。

    [E(x) = sum p_i v_i ]

    由于这个性质,期望具有线性性,也就是 和的期望 = 期望的和

    [E(x_1 + x_2 + ...+ x_n) = E(x_1) +~ E(x_2) + ... +E(x_n) ]

    还有 (E(kx) = k E(x))

    这里的 (x_i) 是互不影响的事件

    注意, (E(x_1 x_2) != E(x_1)E(x_2))

    放到式子里就很好理解

    [E(x_1 x_2) = sum p_i v_{x_1}(i)v_{x_2}(i) ]

    [E(x_1)E(x_2) = sum p_i v_{x_1}(i) sum p_i v_{x_2}(i) ]

    比原来多出来一沓

    有一些题目算要求期望,概率很不好算,但是却可以用期望+走一步的概率倒着推出来,这个地方我觉着玄学的一批,很有道理又很没道理,放到以后解决吧

    要说期望还顶有概率,关于概率,除了有不连续的还有连续的

    关于连续有几个积分式子和定义

    一些定义

    (P(x), ans = x) 的概率
    (p(x) = f'(x), p(x)) 叫连续性随机变量的概率密度函数((p(x)) 越大说明随机变量是 (x) 的概率相对较大)
    (f(x), ans <= x) 的概率,叫连续形随机变量的概率分布函数

    • (tps:) 如果您要阅读请直接看下面的全概率公式(严谨证明)

    (thinking)

    如果我要求连续性随机变量落在 ([l, r]) 的概率,(P(l:r) = f(r) - f(l))

    有一个式子

    [f(x) = int_{-infty}^xp(x) dx ]

    [P(x) = f(x + dx) - f(x) ]

    [p(x) = frac {P(x)} {dx} = frac {f(x + dx) - f(x)} {dx} = f'(x) ]

    [f(x) = int_{-infty}^x df(x) = f(x) ]

    假如随机变量的范围是区间 ([l, r]) 落在 (x) 的权值就是 (x),这就更有意思了

    [E(x) = int_{l}^{r} i P(i) ]

    [= int_{l}^{r} x p(x) dx ]

    [= int_{l}^{r} x f'(x) dx ]

    [= int_{l}^{r} x d(f(x)) ]

    [= [xf(x)]_ l ^ r - int_{l}^{r} f(x) dx ]

    最后一步转化要怎么证呢 ? 一个想法是求出原函数

    [(xf(x))' = xf'(x) + f(x) ]

    [int_l^r (xf(x))'\, dx = int_l^r x f'(x) dx + int_l^r f(x) dx ]

    [int_l^r x d(f(x)) = [xf(x)]_l^r - int_l^r f(x) dx ]

    tps:后来才知道上面那玩意是全概率公式。。。

    还是简述一下(其实就是上面的东西,可跳过)


    全概率公式

    随机变量 (x) 的权值是 (x) 且随机落在区间 ([l, r]),设 $f(x) = $ 答案 (ge x) 的概率, 当 ([x(-f(x))]_l^{r+dx} = 0) 时有

    [E(x) = int_l^r f(x) dx ]

    (P(x)) 为随机变量恰好为 (x) 的概率,(p(x))(x) 的概率密度函数

    证明1

    [f(x) = int_x^r P(x) = int_x^rp(x)dx ]

    [P(x) = f(x) - f(x + dx) = -df(x) ]

    [p(x) = frac {P(x)} {dx} = -f'(x) ]

    [E(x) = int_l^r x P(x) ]

    [= int_l^r x p(x)dx ]

    [= int_l^r x(-df(x)) ]

    [(x(-f(x))' = -f(x) - xf'(x) ]

    [int_l^r (x(-f(x))' dx = -int_l^rf(x)dx + int_l^rx(-df(x)) ]

    [int_l^rx(-df(x)) =[x(-f(x))]_l^r + int_l^r f(x)dx ]

    考虑到积分余项,当 ([x(-f(x))]_l^{r+dx} = 0)(E(x) = int_l^r f(x) dx)

    证明2(有点抽象且不严格,看看就好)

    [E(x) = int_l^r x P(x) ]

    [=int_l^rx(f(x) - f(x + dx)) ]

    把这个式子一项一项展开

    [=int_l^r f(x) dx ]

    这个对于 (dx = 1) 的情况同样适用

    证毕


    下面放一道题

    P3343 [ZJOI2015]地震后的幻想乡

    题目大意: 每个边有一个 ([0, 1]) 的随机权值,求整张图联通的期望时间

    (P(t)) 为联通时间为 (t) 的概率,(p) 是概率密度函数,(f) 是概率分布函数 (f(t)) 表示联通时间 (> t) 的概率

    很显然题目要求

    [E(x) = int_0^1 x p(x) dx ]

    [=int_0^1 x (-df(x)) ]

    根据全概率公式

    [E(x) =int_0^1 f(x) dx ]

    问题来了,怎么求呢?

    我们将 (f(x)) 再加个定义 (f_s(x)) 表示几何为 (s) ((s) 是原图的子集,且 (1 in s)) 的子图联通时间 (> t) 的概率

    首先 (f_{{1}} = 0)

    [f_s(t) = sum_{s_0 subseteq s} (1 - f_{s_0}(t))(1 - t)^{|T(s_0, s - s_0)|} ]

    这里 (|T(s_0, s - s_0)|) 表示 (s_0)(s - s_0) 联通的边数,((1 - f_{s_0}(t)))(t) 时刻 (s_0) 已经联通的概率

    (all) 表示全集,这样可以把原式子写成

    [E(x) = int_0^1 f_{all}(x) dx ]

    [=int_0^1 sum_{s_0 subseteq all} (1 - f_{s_0}(x)) (1 - x)^{|T(s_0, all - s_0)|} ]

    [=sum_{s_0 subseteq all} int_0^1 (1 - x)^{|T(s_0, all - s_0)|} - int_0^1 f_{s_0}(x) (1 - x)^{|T(s_0, all - s_0)|} ]

    [=sum_{s_0 subseteq all} frac 1 {|T(s_0, all - s_0)| + 1} - int_0^1 f_{s_0}(x) (1 - x)^{|T(s_0, all - s_0)|} ]

    这显然是一个递归形式,它的边界是 (int_0^1 f_{{1}}(t) dt = 0)

    下面我们来看更一般的形式

    [int_0^1 f_s(t) (1 - t)^k dt ]

    [=sum_{s_0 subseteq s} (frac 1 {k + |T(s_0, s - s_0)| + 1} - int_0^1 f_{s_0}(t)(1 - x)^{k + |T(s_0, s - s_0|}) ]

    然后这道题就做完了

    初始情况为

    [int_0^1 (1 - t)^0 f_{all}(t) dt ]

    (code)

    #include <bits/stdc++.h>
    using namespace std;
    #define rg register
    // #ifdef ONLINE_JUDGE
    // char ss[1 << 17], *A = ss, *B = ss;
    // inline char gc(){ if(A == B){ B = (A = ss) + fread(ss, 1, 1 << 17, stdin); if(A == B) return EOF; } return *A++; }
    // #define getchar gc
    // #endif
    inline int read(){
        #define G ch = getchar()
        rg char G;
        rg int x = 0, f = 0;
        while(!isdigit(ch)) f |= (ch == '-'), ch = getchar();
        while(isdigit(ch)) x = (x << 1) + (x << 3) + (ch ^ 48), ch = getchar();
        return f ? -x : x;
    }
    #define rep(i, a, b) for(int i = a; i <= b; ++i)
    #define pre(i, a, b) for(int i = a; i >= b; --i)
    const int N = 11, M = N * N;
    double f[1 << 10][M];
    int link[N], sz[1 << 10];
    int n, m;
    signed main(){
        n = read(), m = read();
        rep(i, 1, m){
            int x = read(), y = read();
            link[x - 1] |= 1 << (y - 1);
            link[y - 1] |= 1 << (x - 1);
        }
        int top = 1 << n;
        for(int i = 1; i < top; ++i) sz[i] = sz[i & (i - 1)] + 1;
        // rep(i, 0, m) f[1][i] = 0;
        for(int i = 2; i < top; ++i) if(i & 1){
            for(int s = (i - 1) & i; s; s = (s - 1) & i) if(s & 1){
                rg int ecnt = 0;
                rep(k, 0, n - 1) if((i >> k & 1) & ((~s) >> k & 1)) ecnt += sz[link[k] & s];
                rep(j, 0, m - ecnt) f[i][j] += 1. / (j + ecnt + 1) - f[s][j + ecnt];
            }
        }
        printf("%.6lf", f[top - 1][0]);
        // cout<<fixed<<setprecision(6)<<f[top - 1][0]<<endl;
        getchar(); getchar();
        return 0;
    }
    
  • 相关阅读:
    jMeter 里 CSV Data Set Config Sharing Mode 的含义详解
    如何使用 jMeter Parallel Controller
    使用 Chrome 开发者工具 coverage 功能分析 web 应用的渲染阻止资源的执行分布情况
    使用 Chrome 开发者工具的 lighthouse 功能分析 web 应用的性能问题
    关于 SAP 电商云首页加载时触发的 OCC API 请求
    SAP UI5 确保控件 id 全局唯一的实现方法
    SAP 电商云 Accelerator 和 Spartacus UI 的工作机制差异
    介绍一个好用的能让网页变成黑色背景的护眼 Chrome 扩展应用
    Chrome 开发者工具 performance 标签页的用法
    Client Side Cache 和 Server Side Cache 的区别
  • 原文地址:https://www.cnblogs.com/XiaoVsun/p/13054147.html
Copyright © 2011-2022 走看看