概率&期望复习笔记

期望值dp其实没什么可怕的,就是一种特殊的目标函数而已。也就是状态的值是期望值,决策是从一个状态出发的所有概率性的后续状态。还有一个常用的技巧就是利用期望值的线性性拆开计算。有不少情况下(特别是等概率期望值),期望值其实就是求和。\(---lester\)

相关论文(本文也相当部分是照抄的):\(2009\) 福建省福州第八中学 汤可因:《浅析竞赛中一类数学期望问题的解决方法》,\(2009\) 安徽省合肥一中 梅诗珂:《信息学竞赛中概率问题求解初探》
(但其实本文主要是基础内容(逃

基本性质

  • 期望:有一个随机变量 \(X\), \(E(x) = \sum{i \ Pr(X=i)}\)

  • 当随机变量取值 \(1,2....\) 时期望的好算形式:\(E(x) = \sum{Pr(x \geq i)}\)

  • 期望的线性性质:证明。并且 \(E(aX)=aE(x)\) 是比较明显的。则:

  • \(E(aX+bY)=aE(X)+bE(Y)。 a,b\) 为常数,\(X,Y\) 可以相关。

  • 当两个随机变量 \(X\)\(Y\) 独立且各自都有一个已定义的期望时,有:\(E(XY) = E(X)E(Y)\)

例题

有一个袋子,设其取值是 \(1...m\),摸一次等概率摸出 \(1...m\) 其一,你会一直摸到摸出你喜欢的(未知,但唯一)球,期望摸几次?

\[E(x) = \sum{Pr(x \geq i)} = \sum_{i=1}^{\infty}{(\frac{m - 1}{m})^{i-1}}=m \]

其实这就是几何分布\(Pr(X=k)\) :在 \(n\)\(01\) 试验中前 \(k-1\) 次皆失败 \(0\),第 \(k\) 次成功 \(1\) 的概率。期望就是倒数。

有一个袋子,设其取值是 \(1...m\),摸一次等概率摸出 \(1...m\) 其一,你会一直摸到收集完所有的值,期望摸几次?

路径分步走,一步一期望。每收集到一种新卡,就算做一步咯。具体:
收到第 \(1\) 种新值 每次成功概率 \(1\)
收到第 \(2\) 种新值 每次成功概率 \((m-1)/m\)
收到第 \(3\) 种新值 每次成功概率 \((m-2)/m\)
...... ......
收到第 \(m\) 种新值 每次成功概率 \(1/m\)

\(X_i\) 是拿到 \(i-1\) 种值后直到拿到 \(i\) 的步数。由于期望线性,有:

\[E(X)=E(\sum_1^m{X_i})=\sum_1^m{E(X_i)} \]

而这个 \(E(X_i)\) 我们是解决掉的上一题,期望就是倒数嘛。求和就是个调和级数,暴力做就是。

\[\sum_1^m{E(X_i)} = m(\frac{1}{m}+\frac{1}{m-1}+...+1) \]

有一颗二叉树共 \(n\) 个节点,编号 \(1\)\(n\),每条边长度为 \(1\)。根节点是 \(1\) 号,目标是某个叶节点标记为 \(n\) 号。从 \(1\) 号节点开
\(DFS\), 到 \(n\) 号节点停止, 求 \(DFS\) 算法经过路径长度的期望。
注意:回溯步骤也算路径长度

分析:在 \(DFS\) 过程中,当遍历到从根到目标路径上的某个节点时,如果该节点有两个子节点(二叉树中最多两个子节点),则DFS有 \(\frac{1}{2}\) 的概率先访问不在最短路径上的子树(称为“弯路”子树),遍历整个子树后再回溯并继续访问目标方向。遍历一个大小为 \(s\) 的子树(包括子树根节点)需要 \(2s\) 步(每条边遍历两次:向下和回溯)。这样你考虑多走的期望,就是对于最短路径上每个点,有 \(\frac{1}{2}\) 的概率多走 \(2s\)\(\frac{1}{2}\) 的概率多走 \(0\)。答案就是 \(n-1\)!

考虑集合 \(\{1, 2, 3, \dots, n\}\) 的一个随机排列。定义逆序对为满足 \(i < j\)\(a_i > a_j\) 的位置对 \((i, j)\)。求随机排列中逆序对个数的期望值。

\[X_{ij} = \begin{cases} 1 & \text{若 } a_i > a_j \\ 0 & \text{否则} \end{cases} \]

逆序对总数为 \(S = \sum\limits_{1 \leq i < j \leq n} X_{ij}\)。期望值为:

\[E[S] = E\left[\sum_{1 \leq i < j \leq n} X_{ij}\right] = \sum_{1 \leq i < j \leq n} E[X_{ij}] \]

对任意固定的 \(i<j\),有 \(E[X_{ij}] = P(a_i > a_j)\)。在随机排列中,位置 \(i\)\(j\) 上的元素 \(a_i\)\(a_j\) 是从 \(n\) 个不同元素中均匀随机选取的两个不同值。由对称性:

\[P(a_i > a_j) = P(a_i < a_j) \]

\(P(a_i = a_j) = 0\),因此:

\[P(a_i > a_j) + P(a_i < a_j) = 1 \implies 2P(a_i > a_j) = 1 \implies P(a_i > a_j) = \frac{1}{2} \]

\(E[X_{ij}] = \frac{1}{2}\)

满足 \(i<j\) 的二元对数量为 \(\binom{n}{2} = \frac{n(n-1)}{2}\),因此:

\[E[S] = \binom{n}{2} \cdot \frac{1}{2} = \frac{n(n-1)}{2} \times \frac{1}{2} = \frac{n(n-1)}{4} \]

均匀撒点问题。懒得写了。

\(n\) 枚硬币,初始都背面朝上。抛一次,有 \(50%\) 正面朝上,或负面朝上。抛 \(k\) 次,采取最优策略,求硬币最后正面期望个数。

  • 期望dp!\(f_{i, j}\) 表示 \(i\) 次未抛,目前 \(j\) 个正面朝上,期望次数。那考虑转移:$$f_{i, j} = (f_{i - 1, j + 1} + f_{i - 1, j})) / 2,\ \ \ \ \ \ \ j < n$$$$f_{i, n} = (f_{i - 1, n} + f_{i - 1, n - 1}) / 2 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $$ \(j=n\) 单拎出来不过因为我先抛背面更优,这时候办不了了。

  • 概率dp!\(p_{i, j}\) 代表已经最优策略抛 \(i\) 次,当前 \(j\) 个正面的概率。那答案就是 \(\sum_{j=1}^n{j × p_{k, j}}\)

f[0][0] = 1;
    for (int i = 1; i <= k; i ++ )
        for (int j = 0; j <= n; j ++ ) {
            if (j) f[i][j] += f[i - 1][j - 1] / 2;
            f[i][j] += f[i - 1][j] / 2;
            if (j == n - 1) f[i][j] += f[i - 1][j + 1] / 2;
        }
    double res = 0;
    for (int i = 1; i <= n; i ++ ) res += f[k][i] * i;
    printf("%.2lf\n", res);

两人博弈。你有 \(a\) 元,对方有 \(b\) 元,抛硬币,正面朝上你赢一块,没钱算输。获胜概率?
或者描述成数轴随机游走(醉汉回家)

  • \(dp_i\) 当前有 \(i\) 元,获胜概率。
  • \(dp_i = (dp_{i-1}+dp_{i + 1}) / 2\)
  • \(dp_0 = 0\), \(dp_{a + b} = 1\)
  • 解这个方程,\(2 \ dp_i = dp_{i - 1} + dp_{i + 1}\) 这其实是个 等差数列
  • 解得 \(dp_i = \frac{i}{a + b}\)

另一种理解角度:就是每一轮期望收益为 \(0\),那最终期望肯定也是 \(0\)
由于最后只有两种情况:你赢\(b\), 或者你输掉了 \(a\)

\[b * p + -a * (1-p) = 0 \]

解得 \(p = \frac{a}{a+b}\)。这与我们的分析一致。

两人博弈。你有 \(a\) 元,对方有 \(b\) 元,抛硬币,正面朝上你赢一块,没钱算输。期望次数?

\[f[0] = f[n] = 0 \]

\[f[i]=(f[i-1]+f[i+1])/2+1 \]

整理后 \(f[a] = a * b\)

还有几道题,其实我懒了。

posted @ 2025-05-29 14:56  hhhhhua  阅读(48)  评论(0)    收藏  举报