概率与期望入门

概率与期望入门

定义

期望的定义是:

[mathrm{E}(mathrm{X})=operatorname{Sum}left[mathrm{P}(mathrm{X}=mathrm{i}){ imes} mathrm{i} ight] ]

通俗易懂的讲就是每种情况出现的概率( imes)这种情况的权值。

几种常用的处理方式

当状态转移方式不变时

如果遇到状态转移方式不变时,这类题就很好做了。

一道经典例题:

LOOPS

在这道题中,对于每一个格子,它能转移到哪些格子都是确定了的。我们知道这个格子(P)的期望有(a的概率转移到格子A,b的概率转移到格子B,c的概率转移到格子C),且(a+b+c=1)

我们会发现,这个格子的期望(E(P))(a)的概率为(E(A))(b)的概率为(E(A))(c)的概率为(E(A))

那么根据期望的定义,我们就得知(E(P)=aE(A)+bE(B)+cE(C))。那我们根据依赖的先后顺序依次求解就可以了。

当转移到的点都为等效点

A Dangerous Maze (II)这道题中,我们发现一个点的转移方式可能会改变(随着游戏进行禁止某些转移方式),所以上面的方法是不可用的。

但是我们可以发现,这道题的起点能转移到的点都是等效点(终点),所以我们可以把他们的转移视为一样的。即将起点所有转移的代价这是为转移代价的平均值(转移代价的期望)。

LightOJ-1342中也用到了这个技巧。

当状态与状态之间没有明显的线性递推关系

也就是说,每个状态的答案是独立的。

所以我们就能把问题分解成很多互不相关的子问题。根据期望线性,每一次的答案就是(sum子问题答案)

一道例题:LightOJ-1284

这道题就是把最终的答案拆成每个点期望答案之和。

压缩相同的状态

在概率与期望DP中很重要的一个操作是压缩状态。

举个例子:LightOJ-1248

如果记录哪些面被甩到过,显然是要炸的。但是我们发现每次甩到不重复的概率只和甩到过的个数有关。所以我们只用记录这个东西就好了。

LightOJ-1342,是这道题的加强版。其实本质也是一样的,只用开两个维度,记录两种不同骰子面甩到的次数即可。

几个疑问

为什么期望概率DP都要倒着DP?

因为根据期望的定义,一个状态的期望值是(mathrm{E}(mathrm{X})=operatorname{Sum}left[mathrm{P}(mathrm{X}=mathrm{i}){ imes} mathrm{i} ight])。如果我们知道一个状态后面的所有状态的期望值,又知道这个状态通过每种转移方式转移的概率(一般在题目中均直接给出)。我们就能根据期望定义求出这个状态的期望值了。

相反,如果我们正着DP,我们只能知道状态(A)使用(A ightarrow B)这种转移方式的概率,却不知道状态(B)(A ightarrow B)这种转移方式转移到的概率。(A ightarrow B)这种转移方式的出现概率是(P(A状态) imes P(A选择转移到B))。因为出现这个转移的概率要乘上一个(A)状态的出现概率,所以仔细想想就能发现,这两个概率是完全不同的。


DP状态的定义没有任何改变。只是每个状态的值代表这个状态后面产生的期望。

原文地址:https://www.cnblogs.com/GavinZheng/p/11801178.html