LightningUZ

概率期望

这是一个挺大的东西,又涉及到dp,又涉及到数学,就不知道咋分类

同时,这也是我最菜的几部分之一

符号 & 定义 & 基础知识

符号&定义

概率

\(P(A)\) 表示事件 \(A\) 发生的概率。

  1. 对于离散的情况,假设一共有 \(n\) 种情况均匀随机,其中 \(m\) 种使得事件 \(A\) 成立,那么 \(P(A)=\dfrac{m}{n}\)

因此,“概率”在很多情况下可以看作“计数”

当然,直接考虑概率也有好处,它相当于约掉了很多东西,让问题处理起来更加方便

  1. 对于连续情况:可以使用面积/体积的比来计算概率

\(P(A|B)\) 表示条件概率,即,我们假设 \(B\) 已经发生的条件下,\(A\) 多少概率发生

期望

对于随机变量 \(x\)\(E(x)\) 表示 \(x\) 的期望。

  1. 对于离散的情况,它的值就是每一种可能值乘以它对应的概率

    如,扔一个标准的骰子,朝上的点数的期望是 \(1\times\dfrac{1}{6}+2\times\dfrac{1}{6}...+6\times\dfrac{1}{6}=3.5\)

  2. 对于连续的情况,我们可以使用积分等手段计算期望,这里略

基础知识

注意:以下式子全都可以反过来用,做题的时候思维要灵活一些

概率

\(A,B\) 独立(即二者互不影响)时:

  1. \(P(A\cap B)=P(A)\times P(B)\)
  2. \(P(A\cup B)=P(A)+P(B)\)

\(\overline{A}\) 表示 “\(A\) 不发生”,则 \(P(\overline{A})=1-P(A)\)

这个式子结合上面两个式子,可以使用容斥原理计算概率

\(P(A|B)=\dfrac{P(A\cap B)}{P(B)}\) (条件概率)

\(A_1,A_2...A_n\) 恰好能覆盖所有情况(即,完备),对于事件 \(B\)\(P(B)=\sum\limits_{i=1}^{n} P(B|A_i)\)

这个相当于是一个分类讨论,先按 \(A\) 分类,看 \(B\) 在这个条件下多少概率出现

就好比我家里有短裙和短袖,每种红绿蓝三种颜色的各一件,即,一共 \(6\) 件衣服

那我穿红色衣服的概率就是,穿红色短袖的概率+穿红色短裙的概率

期望

\(x,y\) 独立时,\(E(x+y)=E(x)+E(y)\) (期望的线性性)

这个式子有一个等价的表达,\(E(ax+by)=aE(x)+bE(y)\),其中 \(a,b\) 是任意标量

\(x\) 是正整数时,\(E(x)=\sum\limits_{i} P(x\ge i)\)

证明就考虑一下一个 \(P(i)\) 被算多少次就行了,算一算发现这个次数正好是 \(1,2,3...n\)

而对于正整数的情况,期望正好是 \(\sum\limits_{i} i\times P(i)\)\(P(i)\) 应该被算 \(1,2,3...n\) 次,正好一样,就对了

例题&思维方法 I

这是第一部分,暂且比较简单

(因为这块参考的课件是比较早的课件,好像是noip的集训)

poj2151 简单题

有两个限制:每个队都得做至少一个题(设为条件A),并且至少存在一个队做出来 \(k\) 个题 (设为条件B)

我们要求 \(A\cap B\) 的概率。众所周知,\(P(A\cap B)=P(A)-P(A\cap\overline{B})\)

为什么这么考虑呢,因为,正难则反嘛。

先看 \(P(A)\) 怎么做。简单想一下,也得考虑反面做。对于每个队,考虑拿 \(1\) 减去爆零的概率,就是这一个队至少A掉一个题的概率。然后由乘法原理,队之间的概率乘起来,就是同时满足的方案。

接下来看 \(P(A\cap \overline{B})\)。考虑 \(\overline{B}\) :每个队A掉的题数都 \(\le k-1\)。由于还需要满足条件 \(A\),所以相当于每个队A掉的题都在 \([1,k-1]\) 里面。

考虑这个咋做。此时熟练的选手脑子里已经有一个GF了。先枚举队,设 \(f(i)\) 表示这个队AC了 \(i\) 个题的方案数。那肯定是,在概率数组里选 \(i\) 个“AC的概率”乘起来,然后选 \(m-i\) 个 “不AC的概率” 乘起来。我们发现这很GF,直接GF

设当前这个队AC第 \(i\) 个题的概率是 \(p_i\)。那很明显 \(f\) 的OGF,设为 \(F\),就是

\[\prod\limits_{i=1}^{m} (1-p_i)+p_ix \]

最后得到当前这个队的答案就是 \(F[x^1...x^{k-1}]\)。每个队的答案乘起来就行了。

朴素的实现是 \(O(nm^2)\) 的。使用分治FFT可以做到 \(O(nm\log m)\),这里略(毕竟是10级算法

这题非常水,但是可以帮助理解概率的“考虑反面”思想,还有条件之间取交,取并的概率的计算。这些是很重要的基础知识,做完这个题之后也可以想一想。

CF601C Kleofáš and the n-thlon

(神秘名字,谁教教我咋念啊)

题目中,\(k\) 这个人在 \(i\) 比赛里面的排名被设为 \(x_i\)。但由于后面要用 \(x\) ,这里取名叫 \(p_i\)

\(s_i\) 表示第 \(i\) 个人的总得分

我们要求 \(k\) 这个人的排名(定义为小于它的数量+1)的期望。

根据上面期望相关的式子,先转化一波。要求:

\[E(\sum\limits_{i\neq k} [s_i<s_k])\\ \]

注意到对于某人的某次比赛,排第几名都是等概率的。又注意到除了 \(k\) 这个人之外的人,没有本质区别,都可以看做是同一个人,或者说,把两个人换一下完全不影响。感性理解叫 “都是外人”

根据线性性把这个式子拆开,然后根据人之间的等价性,每一项都是一样的。于是变为:

\[(m-1)\times E(s_i<s_k),i\neq k \]

\(i\) 任意。我们后面就称它为“外人”,即,一个不是 \(k\) 的人。

对于 \(i\) 这个人,在第 \(j\) 场比赛里面,排 \(r\) 位的概率都是 \(\dfrac{1}{m-1}\),但是 \(r\) 不能是 \(p_j\)

那它在这一场比赛里,所有可能性构成的OGF就是 \(\sum\limits_{i=1}^{m}[i\neq r]\dfrac{1}{m-1} x^i\)

我们把每一场比赛的这个 OGF 卷一下,\(i\) 次方项就是它总得分为 \(i\) 的方案数。取它的 \([1,s_k)\) 次项和即可。

但是就算拿FFT卷,朴素的复杂度也是 \(O(n^2m\log(nm))\),不太能过。拿分治FFT写似乎理论复杂度对了,毛估估应该是 \(O(nm\log (nm))\) 的。但是我觉得它应该会很难写,也不应该是标程。这题的这个范围似乎在提示我们,复杂度应该是 \(O(n^2m)\)

考虑这一堆GF,它们只有一个空缺,和全 \(1\) 的多项式非常像。

考虑差分。由于它是两段 \(1\) 组成,所以它的差分应该最多 \(4\) 个位置有值。而多项式这个系数取差分,其实就是卷上一个 \(1-x\),性质非常好:满足交换律和结合律。也就是说,我们可以先取一堆差分,然后再卷,然后再前缀和做回来,做的顺序不影响。

那这样只有 \(4\) 个位置有值,就算是暴力的从 \(1\)\(n\) 枚举,每次卷积的复杂度也只有 \(O(4nm)=O(nm)\),总复杂度 \(O(n^2m)\)。虽然劣一些,但是好写

怎么只有这么点例题啊

会加上的会加上的qaq

分类:

技术点:

相关文章: