首页 > 其他分享 >离散意义下的基础概率与期望

离散意义下的基础概率与期望

时间:2024-08-02 09:09:25浏览次数:7  
标签:infty 概率 frac int sum times 离散 期望 align

定义

  • 概率:某个随机事件出现的可能性大小。

    事件 \(A\) 发生的概率记作 \(P(A)\),其取值范围为 \([0,1]\)。

  • 期望:若 \(X\) 是一个离散型的随机变量,可能的取值为 \(x_1,x_2,\dots,x_n\),对应的概率分别为 \(p_1,p_2,\dots,p_n\),那么它的期望值为 \(\sum_{i=1}^n p_ix_i\)。

    随机变量 \(X\) 的期望记作 \(E(X)\)。

Practice 1

设随机变量 \(X\) 的取值范围为正整数,\(\forall 1\leq i<+\infty\), \(P(X=i)=2^{−i}\)。

  1. 求 \(E(x)\) 的值。

    答案

    设 \(S=E(x)=\sum_{i=1}^{\infty}\frac{i}{2^i}\),有:

    \[ \begin{align} 2S&=\sum_{i=1}^{+\infty}\frac{i}{2^{i-1}}\\ &=\sum_{i=0}^{+\infty}\frac{i+1}{2^i}\\ &=\sum_{i=0}^{+\infty}(\frac{i}{2^i}+\frac{1}{2^i})\\ &=\sum_{i=1}^{+\infty}\frac{i}{2^i}+\sum_{i=0}^{+\infty}\frac{1}{2^i}\\ &=S+\sum_{i=0}^{+\infty}\frac{1}{2^i} \end{align} \]

    又有:

    \[ \begin{align} S&=2S-S\\ &=(S+\sum_{i=0}^{+\infty}\frac{1}{2^i})-S\\ &=\sum_{i=0}^{+\infty}\frac{1}{2^i}\\ \end{align} \]

    我们成功地对 $S$ 完成了第一步的转化。接下来:
    

    \[ \begin{align} \frac{1}{2}S&=\sum_{i=0}^{+\infty}\frac{1}{2^i}\\ &=\sum_{i=0}^{+\infty}\frac{1}{2^{i+1}}\\ &=\sum_{i=1}^{+\infty}\frac{1}{2^i}\\ &=S-1 \end{align} \]

    根据上述式子,可以列出方程:
    

    \[ \begin{align} \frac{1}{2}S&=S-1\\ S&=2S-2\\ S&=2 \end{align} \]

    解出答案 $E(x)=2$。
    
  2. 并且 \(\forall 1\leq i<+\infty\),求 \(P(X\geq i)\)。

    答案

    设 \(S=P(X\geq i)=\sum_{j=1}^{+\infty}P(x=j)=\sum_{j=1}^{+\infty}\frac{1}{2^j}\)。

    那么有:

    \[ \begin{align} \frac{1}{2}S&=\sum_{j=i}^{+\infty}\frac{1}{2^{j+1}}\\ &=\sum_{j=i+1}^{+\infty}\frac{1}{2^{j}}\\ \end{align} \]

    根据子问题 $(1)$ 中的类似计算方法可得:
    

    \[ \begin{align} \frac{1}{2}S&=\sum_{j=i+1}^{+\infty}\frac{1}{2^{j}}\\ &=\frac{1}{2^i} \end{align} \]

    列出方程:
    

    \[ \begin{align} \frac{1}{2}S&=\frac{1}{2^i}\\ S&=\frac{1}{2^{i-1}} \end{align} \]

用 Tail Probability 求期望

有时候我们需要求解 \(E(X)\),但是我们只知道 \(P(X\geq i)\) 的值,这时候就可以利用 \(\text{Tail Probability}\) 来求解 \(E(X)\)。

拿上面的问题 \((1)\) 举例:

\[\begin{align} E(X)&=\sum_{i=1}^{+\infty}i\times P(X=i)\\ &=\sum_{i=1}^{+\infty}\sum_{j=1}^iP(x=i)\\ &=\sum_{j=1}^{+\infty}\sum_{i=j}^{+\infty}P(X=i)\\ &=\sum_{j=1}^{+\infty}P(X\geq j) \end{align} \]

此时,代入上述问题 \((2)\) 中的答案可得:

\[\begin{align} E(X)&=\sum_{j=1}^{+\infty}P(X\geq j)\\ &=\sum_{j=1}^{+\infty}\frac{1}{2^{j-1}}\\ &=2 \end{align} \]

得到了相同的结果。

通过上述举例,我们容易发现: \(\text{Tail Probability}\) 本质是一种拆贡献的思想,在一些情况下可能有益于解题。

期望的线性性

对于两个随机变量:

  • \(E(X+Y)=E(X)+E(Y)\)

    • \(X,Y\) 这两个随机变量不一定要独立。
  • \(E(aX)=aE(X)\)

    • 同上,不要求 \(X,Y\) 独立。
  • \(E(XY)=E(X)E(Y)\)

    • \(X,Y\) 必须要求独立,不合对方的取值相关。

上述的三条利用乘法分配律自证不难。

Practice 2

给出 \(n\) 个独立事件发生的概率 \(p_1,p_2,...,p_n\)。求至少有一个事件发生的概率。

下面给出两种解法:

解法1

利用简单容斥解决。用总概率减去一件事情也没发生的概率。

\[1-\prod_{i=1}^n (1-p_i) \]

解法2

\[\sum_{i=1}^n(\prod_{j=1}^{i-1}p_j)\times p_i \]

对每件事情算他作为编号最小的发生的事件的概率是多少,注意到这样不重不漏。

Practice 3

  • 题目:CF280C

  • 题意:给出一颗 \(n\) 个节点的有根树(\(1\) 为根)。接下来会进行若干此操作,每次操作会从剩下的点中以相同的概率选择一个节点,并删去它的子树。操作直至树为空。求期望的操作次数。

    \(1\leq n\leq 10^5\)

  • 不妨进行拆贡献:设随机变量 \(X_i\) 表示 \(i\) 号点是否被操作(\(X_i=1\) 表示被选中,\(X_i=0\) 表示没被选中),那么有 \(answer=\sum E(X_i)\)。

    考虑到 \(E(Xi)=P(X_i=1)\),而 \(P(X_i=1)\) 当且仅当它在其所有祖先之前被选中。故 \(E(X_i)=P(X_i=1)=\frac{1}{depth_i}\)。

Practice 4

  • 题目:CF Gym 101234 D

  • 题意:给出一颗 \(n\) 个节点的树。接下来会进行若干次操作,每次会删除一个节点和所有与他相关的边,贡献为其所在连通块的大小。操作直至图为空。求期望的贡献和。

    \(1\leq N \leq 10^5\)

  • 进行拆贡献。考虑删除 \(u\) 点时如果 \(v\) 点还和 \(u\) 点处于同个连通块,那么 \(v\) 对 \(u\) 有 \(1\) 的贡献,此时满足 \(u\) 是 \(u\to v\) 路径上第一个被删除的点,概率为 \(\frac{1}{\text{dist}(i,j)+1}\)。

    所以一种暴力的思路就是枚举 \(u,v\),求贡献和。但是数据范围较大,可以统计每种长度的路径出现了多少次再求和,采用点分治+\(\text{FFT}\) 或者树上启发式合并+\(\text{FFT}\) 求解答案即可。

Practice 5

  • 题目:CF1097D

  • 题意:给定 \(n,k\),一共会进行 \(k\) 次操作,每次操作会把 \(n\) 等概率的变成 \(n\) 的某个约数。

    求操作 \(k\) 次后 \(n\) 的期望是多少,答案对 \(10^9+7\) 取。

    \(1 \le n \le 10^{15},1 \le k \le 10^4\)

  • 钦定 \(n=\prod_{i=1}^{c}p_i^{t_i}\),\(X\) 为 \(n\) 经过 \(k\) 次操作后的随机变量,\(X_i\) 为 \(p_i^{t_i}\) 经过 \(k\) 次操作后的随机变量9满足 \(p_1,p_2,\dots,p_c\) 均为质数)。

    容易发现,\(E(X)=\prod_{i=1}^cE(X_i)\),也就是 \(E(X)\) 是一个积性函数。故而我们对 \(n\) 分解质因数后进行一遍 \(\text{DP}\) 即可。

    具体的,假设当前是 \(n\) 的第 \(id\) 个质因子,且 \(f_{i,j}\) 为经过 \(i\) 次操作后,剩下的数为 \(p_{id}^j\) 的概率。转移为 \(f_{i,j}=\sum_{l=j}^{t_{id}}\frac{1}{l+1}f_{i-1,l}\)。最终的 \(E(X_{id})=\sum_{i=1}^{t_{id}}f_{k,i}\)。

    • 当 \(k\) 很大的时候可以使用矩阵快速幂优化 \(\text{DP}\)。
  • 代码 #include <bits/stdc++.h> #define FL(i, a, b) for(int i = (a); i <= (b); i++) #define FR(i, a, b) for(int i = (a); i >= (b); i--) using namespace std; typedef long long ll; const int N = 70, K = 1e4 + 10, p = 1e9 + 7; int k; ll t, n, ans = 1, f[K][N]; int qpow(int a, int b){ int ans = 1; for(; b; a = 1ll * a * a % p, b >>= 1) if(b & 1) ans = 1ll * ans * a % p; return ans; } int inv(int x){return qpow(x, p - 2);} ll F(int a, int b){ f[0][b] = 1; ll ret = 0, sum = 0; FL(i, 1, k){ sum = 0; FR(j, b, 0){ (sum += 1ll * f[i - 1][j] * inv(j + 1) % p) %= p; f[i][j] = sum; } } FL(i, 0, b) (ret += 1ll * f[k][i] * qpow(a, i) % p) %= p; f[0][b] = 0; return ret; } int main(){ scanf("%lld%d", &n, &k), t = n; FL(i, 2, sqrt(n)){ int c = 0; while(t % i == 0) t /= i, c++; if(c) ans = 1ll * ans * F(i, c) % p; } if(t > 1) ans = 1ll * ans * F(t % p, 1) % p; printf("%lld\n", ans); return 0; }

Practice 6

  • 题目:AGC019F

  • 题意:有 \(N+M\) 个问题,其中有 \(N\) 个问题的答案是 YES,\(M\) 个问题的答案是 NO。当你回答一个问题之后,会知道这个问题的答案,求最优策略下期望对多少。答案对 \(998244353\) 取模。

    $ 1\leq N,M\leq500,000$

  • 首先,不难得出选 YES 答对的概率是 \(\frac{N}{N + M}\),选 NO 答对的概率是 \(\frac{M}{N+M}\)。

    于是我们有如下结论:

    假设 \(N > M\),我们必定选 YES;相反 \(M > N\),则必定选 NO

    由于 YESNO 没有本质之分,同时出于简化问题的考虑,不妨钦定 \(N \geq M\)。

    接着,易发现答案保底有 \(\max(N,M)\),即 \(N>M\) 时带来的贡献。原因很简单:假设当前答案是 YES,答对了算进贡献;当前答案是 NO,那么这一题答错了、但是 \(N\) 的值依旧没变,而 \(M\) 却减小了。如果按照这样下去(最坏情况),最后 \(M=0\) 之后你就能连续猜对 \(N\) 次。

    之后考虑 \(N=M\) 所带来的贡献。其实就是拿“期望出现的 \(N=M\) 的局面数”乘以 \(\frac{1}{2}\)(不管选 YESNO 都有 \(\frac{1}{2}\) 的概率答对)。具体的,我们对于前者,进行拆贡献。现在问题就转化为了求出现某个给定局面的概率,组合数求解即可。

    代码
    #include <bits/stdc++.h>
    #define FL(i, a, b) for(int i = (a); i <= (b); i++)
    #define FR(i, a, b) for(int i = (a); i >= (b); i--)
    using namespace std;
    const int N = 1e6 + 10, p = 998244353;
    int n, m, s, ans, fac[N];
    int qpow(int a, int b){
    	int ans = 1;
    	while(b){
    		if(b & 1) ans = 1ll * ans * a % p;
    		b >>= 1, a = 1ll * a * a % p;
    	}
    	return ans;
    }
    int inv(int x){return qpow(x, p - 2);}
    int C(int n, int m){
    	if(n < m || n < 0) return 0; if(!m) return 1;
    	return 1ll * fac[n] * inv(fac[n - m]) % p * inv(fac[m]) % p;
    }
    int main(){
    	scanf("%d%d", &n, &m); if(m > n) swap(n, m);
    	fac[0] = 1;
    	FL(i, 1, n + m) fac[i] = 1ll * fac[i - 1] * i % p;
    	FL(i, 1, m)
    		(ans += 1ll * C(i * 2, i) * C(n - i + m - i, n - i) % p) %= p;
    	printf("%d\n", (1ll * ans * inv(C(n + m, n)) % p * inv(2) + n) % p);
    	return 0;
    } 
    

求高阶矩

  • 若我们关心的随机变量 \(X\) 可以拆成 \(\sum_{i=1}^n X_i\),则二阶矩有:

\[\begin{align} E(X^2)&=E((\sum_{i=1}^n X_i)^2)\\ &=E(\sum_{i=1}^n\sum_{j=1}^n X_iX_j)\\ &=\sum_{i=1}^n\sum_{j=1}^n E(X_iX_j) \end{align} \]

三阶:

\[\begin{align} E(X^3)&=E((\sum_{i=1}^n X_i)^3)\\ &=E(\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^n X_iX_jX_k)\\ &=\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^n E(X_iX_jX_k) \end{align} \]

更高阶的以此类推。

Practice 7

  • 题目:CF1187F

  • 题意:有一个长度为 \(n\) 的序列 \(x\)。定义 \(B(x)\) 为 \(x\) 的颜色段数。
    对于 \(\forall 1\leq i\leq n\),\(x_i\) 将等概率为 \([l_i,r_i]\) 中的一个整数颜色。

    给出所有 \(l_i,r_i\),求 \(E((B(x^2))^2)\),即平方的期望。

  • 考虑在每一段的开头算贡献:只要它和前面的数不同,它就是某一段的开头。

    • 注意到上述贡献比实际的贡献少 \(1\)(开头那一段),但是并不影响我们做下去。
      于是我们利用上述求二阶矩的方法,对于每一对开头 \((i,j)\) 算一下贡献。观察到大部分对的开头都是独立的,只有相邻的位置与同一个位置的不独立,故而分开考虑:
    1. \(|i-j|>1\)

      观察到这部分是独立的,对每个位置分开算。

    2. \(|i-j|\leq 1\)

      \(i=j\) 比较显然。对于 \(j=i+1\),进行一个容斥(当前条件下,\(i,j\) 均为颜色段开头当且仅当 \(x_{i-1}\not=x_i\) 且 \(x_{i}\not=x_{j}\)):贡献为 \(1-P(x_{i-1}=x_i)-P(x_{i}=x_{j})+P(x_{i-1}=x_i=x_{j})\)。

方差

  • 方差的定义

\[Var(X)=E((X-E(X))^2) \]

根据定义,可推出:

\[Var(X)=E(X^2)-E(X)^2 \]

即平方的期望减去期望的平方。

推导过程

\[\begin{align} Var(X)&=E((X-E(X))^2)\\ &=E((X-E(X))\times(X-E(X)))\\ &=E(X^2+E(X)^2-2\times X\times E(X))\\ &=E(X^2)+E(X)^2-E(2\times X\times E(X))\\ &=E(X^2)+E(X)^2-2\times E(X)^2\\ &=E(X^2)-E(X)^2 \end{align} \]

Practice 8

  • 题意:给定一个大小为 \(n\times m\) 的矩形,某一些格子上有物品,共有 \(k\) 个物品,现在等概率选一个子矩形,求子矩形内物品个数的方差。

  • 由于 \(Var(X)=E(X^2)-E(X)^2\),故考虑分别求等号后的两项。

    \(E(X)^2\) 比较好算。根据期望的线性性,可以拆成 \(\sum_{i=1}^n\sum_{j=1}^m P((i,j)\text{ 被子矩形覆盖到的概率})\),而他的概率就等于被覆盖到的方案数除以矩形的总数。后者的方案数易得(因为行和列是独立的),现在只关心前者——对于一个点 \((i,j)\),它被覆盖到的方案数就是 \(i\times(n-i+1)\times j\times(m-j+1)\)。

    求 \(E(X^2)\) 可以转化为:对于每一对点,统计包含它们的矩形的个数。\(k\) 较小的时候显然可以暴力求解,但在 \(k\) 大的时候还需要进一步的分析——我们不妨对两个点 \(x,y\) 的位置关系进行分类讨论:

    1. \(x\) 在 \(y\) 的左上角(\(x\) 在 \(y\) 的右下角是等价的)

      钦定 \(x,y\) 的坐标分别为 \((i,j),(k,t)\),那么当前两个点都被矩形覆盖到的方案数是 \(i+(n-k+1)\times j+(m-t+1)\)。

      易发现每个 \(x,y\) 的贡献值都独立,可用静态二维数点解决。

    2. \(x\) 在 \(y\) 的右上角(\(x\) 在 \(y\) 的左下角)

      钦定 \(x,y\) 的坐标分别为 \((i,j),(k,t)\),那么当前两个点都被矩形覆盖到的方案数是 \(k+(n-i+1)\times j+(m-t+1)\)。

      同上。

Practice 9

  • [ZJOI2019]麻将

  • 首先,必须先考虑一副牌是否是“胡”的,不然解决这道期望题就是无稽之谈。所以我们可以先把 \(7\) 个对子的特殊情况判掉,接下来用 \(\text{DP}\) 判断 \(1\) 个对子、\(4\) 个面子的情况。

    用 \(f_{i,j,k,t}\) 表示考虑了前 \(i\) 种牌,是否已经有对子了(\(j=0\) 表示否,\(j=1\) 表示是),多余的像 \(i,i-1\) 这样的一组牌有 \(k\) 组,多余的第 \(i\) 种牌有 \(t\) 个的情况下,最大产生的面子数量。

    接下来来回到这道题。设 \(X\) 表示最早产生胡牌的轮数的随机变量,\(p(x)\) 表示恰好 \(x\) 轮时第一次产生了胡牌的概率。

    \[ E(X)=\sum_{x=0}^{4n-13} x \times p(x) \]

    \[ E(X)=\sum_{x=0}^{4n-13} \sum_{i=0}^{n-1} \times p(x) \]

    \[ E(X)=\sum_{i=0}^{4n-13} \sum_{x=i+1}^{4n-13} \times p(x) \]

    \[ E(X)=\sum_{i=0}^{4n-13} P(\text{x轮时还没有胡牌的概率}) \]

    \[ E(x)=\sum_{i=0}^{4n-13} \frac{\text{x轮时还没有胡牌的方案数}}{C_{4n-13}^i} \]

    所以我们的重中之重就是求出 \(x\) 轮还没有胡牌的方案数。

    我们使用 \(\text{DP}\) 套 \(\text{DP}\) 解决此问题。我们把上述简易 \(\text{DP}\) 的状态和其对应的对子数量作为内层 \(\text{DP}\) 状态给压缩起来(注意 \(i\) 那维不要压进去,之后会把那一维单独地放入外层的状态里),我们发现实际有用的状态可能很少,故而用搜索找。那么我们外层的状态就显而易见了:\(dp_{i,j,k}\) 表示前 \(i\) 种牌,内层状态为 \(j\),总共选了 \(k\) 张的方案数。

    至于查询没有胡牌的方案数,只需要判断加求和就行了。

标签:infty,概率,frac,int,sum,times,离散,期望,align
From: https://www.cnblogs.com/zac2010/p/18337953

相关文章

  • 洛谷题单指南-前缀和差分与离散化-P3029 [USACO11NOV] Cow Lineup S
    原题链接:https://www.luogu.com.cn/problem/P3029题意解读:不同的坐标位置有不同种类的牛,要计算一个最小的区间,包括所有种类的牛。解题思路:由于坐标位置不连续,并且数值范围较大,因此需要离散化处理,将坐标处理成1~n连续分布由于种类编号数值范围也比较大,也需要离散化处理,去重后的......
  • 洛谷题单指南-前缀和差分与离散化-P4552 [Poetize6] IncDec Sequence
    原题链接:https://www.luogu.com.cn/problem/P4552题意解读:对一组数字序列,进行若干次区间+1或者-1操作,最终使得所有数字一样,计算最少的操作次数,以及能得到多少种不同序列。解题思路:要使得序列每一个数字都相同,则其差分除了第一项之外其余项都是0。因此,问题转化为:给定一个差分数......
  • 洛谷题单指南-前缀和差分与离散化-P2882 [USACO07MAR] Face The Right Way G
    原题链接:https://www.luogu.com.cn/problem/P2882题意解读:一个有F、B组成的序列,每次可以翻转k个连续子序列,翻转:F->B,B->F,计算最少翻转多少次可以将序列都变成F,并求相应的k。解题思路:为方便处理,设F为1,B为01、朴素做法枚举k:1~n  枚举序列,一旦遇到0,就将连续k个字符翻转,如果可......
  • 洛谷题单指南-前缀和差分与离散化-P1083 [NOIP2012 提高组] 借教室
    原题链接:https://www.luogu.com.cn/problem/P1083题意解读:已知第i天有r[i]个教室可以供租借,有m个租借教室的订单,第i订单需要在第s[i]~t[i]天区间内租借d[i]个教室,计算是否全部订单都能满足,如果不满足要输出从第几个订单开始不满足。解题思路:1、朴素做法枚举1~m个订单,通过差分......
  • 洛谷题单指南-前缀和差分与离散化-P3406 海底高铁
    原题链接:https://www.luogu.com.cn/problem/P3406题意解读:1-n个城市共了n段路,第i段路不买卡票价a[i],买卡票价b[i](卡本身花费c[i]),给定一个路程顺序,计算最少的通行费用。解题思路:根据路程,计算每段路各走了多少次,然后对于每段路,计算买卡和不买卡两种花费,取较小的累加即可。如何......
  • 在 Lambda Python 中获取 errorMessage": "期望值: 第 1 行第 1 列 (char 0)"
    我正在尝试使用slackapi和awslambda函数创建一个slack机器人。现在我只希望每当用户说“你好”时它就响应“你好”。当我在Lambda代码编辑器中测试代码时,出现此错误。我对Lambda很陌生,并且已经被困在这个问题上有一段时间了。非常感谢任何帮助!完整错误:Response......
  • 概率论与数理统计(一)
    1.1.2样本空间和随机事件判断随机试验:1.可重复性(相同条件)2.结果可知性3.不可预言性 eg:摸小球不放回不是与实验目的有关:比如为决定比赛首发,只关注硬币正反,对硬币滚动不倒情况不关心A={}1.1.3事件之间的关系及其基本运算包含关系和事件积事件互不相容逆事件(对立事件)差......
  • 洛谷题单指南-前缀和差分与离散化-P3017 [USACO11MAR] Brownie Slicing G
    原题链接:https://www.luogu.com.cn/problem/P3017题意解读:将一个r*c的矩阵,横向切成a条,每一条纵向切除b块,计算每一块子矩阵之和的最小值最大是多少。解题思路:要计算最小值中最大的,直觉上可以采用二分,下面来分析单调性:给定一个子矩阵块之和的值,值越小可以划分的条数、块数就越多......
  • 洛谷题单指南-前缀和差分与离散化-P2004 领地选择
    原题链接:https://www.luogu.com.cn/problem/P2004题意解读:在一个n*m的矩阵中,找到边长为c的正方形,使得正方形范围内的数之和最大,输出正方形的左上角坐标。解题思路:二维前缀和的简单应用第一步:计算二维前缀和第二步:枚举边长为c的正方形左上角,计算正方形区域的数之和,更新答案第......
  • 洛谷题单指南-前缀和差分与离散化-P1884 [USACO12FEB] Overplanting S
    原题链接:https://www.luogu.com.cn/problem/P1884题意解读:给定n个矩形的平面直角坐标系下左上角、右下角的坐标,计算这n个矩形能覆盖的的格子数。解题思路:直观上来看,此题是一个差分应用,针对二维差分数组,将n个矩形区域内每个格子的值加1,然后统计有多少个不为0的格子即可。但是!坐......