概率
基础知识
样本空间、事件和概率
样本空间S
是一个集合,它的元素被称为基本事件。样本空间的一个子集被称为事件,根据定义所有的基本事件都互斥。
概率公理
如果有一种事件到实数的映射 ,满足:
- 对任何事件 ,;
- ;
- 对两个互斥事件,,
则可称 为事件 的概率。
随机变量
如果对样本空间 中的任意事件 ,都有唯一的实数 与之对应,则称 为样本空间 上的随机变量,其中离散型随机变量与连续型随机变量较常见。
离散型随机变量及其概率分布
取值范围为有限或无限可数个实数的随机变量称为离散型随机变量。设离散型随机变量 取值 时的概率为 ,则称 的所有取值以及对应概率为 的概率分布,记做 。
常见的离散型随机变量的概率分布有两点分布,二项分布,几何分布,超几何分布,泊松分布。
连续型随机变量及其概率分布
如果 是在实数域或区间上取连续值的随机变量,设 的概率分布函数为 ,若存在非负可积函数 ,使对任意的 ,有,则称 为连续型随机变量,称 为 的概率密度函数。要注意,概率密度不是概率。常见的连续型随机变量分布有均匀分布,正态分布,指数分布。
连续型随机向量及其概率分布
如果 都是连续型随机变量,则称 为 维随机向量,其概率分布函数为 。若存在非负可积函数 使得 ,其中等式右端表示 重积分,就称 是 为随机向量 的联合概率密度函数。
如果 相互独立,并且分别有概率密度函数 ,那么 。
数学期望
离散型随机变量的数学期望
设离散型随机变量 的分布律为 ,若 存在,则称 为 的数学期望,简称期望,记为 。
连续型随机变量的数学期望
设连续型随机变量 的概率密度函数为 ,若广义积分 收敛,则称 为连续型随机变量 的数学期望,记为 。
例题1 LastMarble (TopCoder SRM 349 div one 1000)
题目描述
有red
个红球,blue
个蓝球在一个袋子中。两个玩家轮流从袋子中取球,每个人每次可以取 1,2 或 3 个球,但在他把球拿出袋子之前,他并不知道所取球的颜色。每次球被取出袋子后,它们的颜色被公布给所有人。取走最后一个红球的人输。现在已知有人在游戏开始前取走了removed
个球,并且谁也不知道球的颜色。在两个玩家都采取最优策略时,先手的胜率是多少?
数据范围:。
分析
当 的时候,这个问题是很普通的动态规划问题。我们只需设 代表现在剩 个红球, 个蓝球,面对当前局面的玩家所能得到的最大胜率。那么: 其中 是取到 个红球, 个蓝球的概率。 就是我们要的答案。
对于 的情况,我们显然可以知道:
定理 在 个红球, 个蓝球中先取 个球,再取 个球,剩余不同颜色的球数的概率分布与先取 个球,再取 个球所对应的剩余不同颜色的球数的概率分布是相同的。
上面的定理告诉了我们,取球的顺序和最终的结果没有关系。
我们设 表示当前有 个红球, 个蓝球的,被事先取走了 个球(不知道它们的颜色),面对这个局面的玩家所能得到的最大胜率。当玩家取走 个球时,根据上面的定理,新的局面与玩家先取走 个球,再让 个球被取走所得到的局面完全一样!但是有一种边界情况要考虑:由于不能保证 ,可能在一些情况下,取走 个球后,玩家已经输了,而不能进行下面的游戏。要解决这种特殊情况,只需对 的定义和动态规划方程略加修改:让 表示当前有 个红球, 个蓝球,被取走了 个球但仍然至少还有 1 个红球的情况下,当前玩家的最大胜率。
我们用 表示有 个红球, 个蓝球,取走 个球而红球数仍大于 0 的概率,那么 。我们可以用递推式求解: 再考虑最初的dp式,因为 个红球, 个蓝球取走 个球仍有至少 个红球的情况,包含了有 个红球, 个蓝球,取走 个球后仍有至少 1 个红球的情况,因此在前者满足的基础上后者满足的概率是 。由此我们得出最终的方程: 最后的答案是。
例题2 Randomness (UVA 11429)
题目描述
有一个随机数生成器能随机返回 到 的正整数,现在有 个事件,要求第 个事件的 发生概率是 ,用该随机数生成器设计一种事件触发装置,使随机数生成器的期望使用次数 尽量少,求出 (精确到 )。
数据范围:,且 ,所有的数都是正整数。
分析
为了观察题目规律,我们先看一个例子:
当 时,最优策略可以是:当生成的数 时执行事件 ,否则再使用一次随机数生成器,事件的选择与上一次一样。这样每个事件发生的概率是:;
我们看到第一次使用生成器(定义为第一层生成器)时,有一些直接映射到事件,其余的每一个返回值分别对应一次新的生成器的使用,定义为第二层生成器。归纳地,定义第 层生成器为由第 层生成器返回值引起的新的生成器的使用。
很明显,对事件 而言,假设第 层生成器中有 个返回值对应着事件 的发生,一定有
这里 ,因为如果某个 ,我们把 减去 , 加 1,则等式仍成立,而 Exp 减小了。同时可以看出,这就是 的 进制表示,所以 的取值是唯一的。
为了计算 Exp,我们定义 为第 层生成器产生的导致新的生成器使用的返回值个数,定义 ,那么 就是第 层生成器对 Exp 的贡献,我们有
至于求 ,因为第 层生成器中所有导致新生成器使用的返回值的个数,就是第 层生成器被使用的个数,减去其中所有导致事件的返回值个数,也就是
我们不可能求出所有的 ,也没有必要,因为对所有的 ,我们有
这个式子告诉我们:只要 足够大,我们可以让 Exp 的误差小到任意程度,而且这个误差减小的速度是很快的。根据题中要求的精度,只要算到第 50 层就足够了。