【总结】概率与期望

前言

作为NOIP级的知识点,概率与期望算是比较困难的类型了。
但其实也不是无法解决的难题。

本文主要通过作者本人的刷题经历,对概率期望类题目进行总结。

概率

51Nod1639绑鞋带:

有n根鞋带混在一起,每根鞋带有两个鞋带头。现在重复n次以下操作:随机抽出两个鞋带头,把它们绑在一起。求最终只形成一个环的概率?

依次考虑每一步操作,现在已经选出来了一个头,它必须和非它所在的链的另一个头绑在一起,才能得到合法方案。显然所有的鞋带头中,有且仅有一个和它在一条链上,所以成功的概率就是 1 剩 下 的 鞋 带 头 数 − 1 剩 下 的 鞋 带 头 数 ,由于每次操作,会消去两个鞋带头,所以当前的鞋带头数=总的鞋带头数-操作次数*2。题目要求不允许失败,所以答案就是每一次成功概率的乘积。

在这道题目中,我们在每一步操作时,都计算出了当前的情况总数,并将其转化为概率的形式。

Uva1636 Headshot

题意很简单,有一把左轮手枪(左轮都不知道的面壁去),已知子弹的分布,现在开了一枪,是空枪,现在有两种方案:1,直接再开一枪,2、随机从某个位置再开一枪。求使得下一发子弹也是空枪
这道题算是比较简单的条件概率:已知第一发没有子弹。解法很简单,随机开一枪概率为 空 子 弹 子 弹 总 数 ,再开一枪概率 连 续 的 空 子 弹 空 子 弹

Uva11181 Probability|Given

这道题只是运用枚举法求概率的典型,价值不大。

Uva557 Burger

题意:有A、B两种汉堡各n个,2n个人依次拿,若当前两种汉堡均有剩余,随机拿走某种的一个,否则只能拿走剩余的。现在求最后两个人拿到不同的汉堡的概率。

其实就是计算拿前2n-2个,到最后每种都还剩一个的概率。就是说,前2n-2个人中,有n-1个拿的是A种汉堡,剩余的拿的是B种汉堡,那么这样合法的方案就是 C(2n2,n1) C ( 2 n − 2 , n − 1 ) ,这时,再来看每一步能拿到我们计划中的状态的概率,由于对于所有合法方案,最后两类都有剩余,也就是说,之前每个人都有选择,那么每一个人拿到我们想要他拿到的概率即为 12 1 2 ,一共拿 2n2 2 n − 2 步,所以最终答案就是 C(2n2,n1)22n2 C ( 2 n − 2 , n − 1 ) 2 2 n − 2

Uva11895 Honorary Tickets

题意:有k个大箱子,每个盒子里有 bi b i 个盒子,其中有 si s i 个盒子中有一个糖果。
现在每个人依次操作:选择一个能拿到糖果概率最大的箱子,从中随机打开一个盒子。现在求第k个人能拿到糖果的概率。

这道题可能乍一看觉得很简单,你可能会误以为对每个人而言,状态都是一样的。其实不然,由于每个人之前的人数不同,所以会对他的选择造成影响。比如下面这个例子:
现在又2个箱子,第一个箱子有3个盒子,2颗糖。第二个箱子有2个盒子,1颗糖。第一个人肯定选择第一个箱子,他有 23 2 3 的概率拿走一颗糖,还有 13 1 3 的概率不能拿走糖。那么下一次在这个箱子中能拿到糖的概率就变为了: 23×13+13×23=49 2 3 × 1 3 + 1 3 × 2 3 = 4 9 。这时第二个人就只能选第二个箱子了。

其实这个问题还是很简单。
首先,用优先队列存储每个箱子的信息,我们需要保存:这个箱子能拿到糖果的概率,这个箱子的盒子数。排列时按照概率从大到小,模拟每个人取糖果的过程,显然他只会从队首取,那么只需要更新一下队首的概率即可。

如何更新这个概率,我是推了一波公式推出来的结果,但lx大佬告诉了我一个更简单的推导方式:假设现在又m个盒子,能拿到糖的概率为p,由于每个盒子最多只有一个,所以现在有糖果的盒子期望数是m*p,那么有p的概率拿走一个,1-p的概率不拿走,所以更新后的答案就是 pmp1m+(1p)mpm=(m1)pm p ∗ m ∗ p − 1 m + ( 1 − p ) ∗ m ∗ p m = ( m − 1 ) ∗ p m

lx大佬的方法巧妙地利用的期望的一些性质,使得推导过程变得极为简洁,所以推导概率时,巧用期望也是一种极好的方式。

Hdu4326 Game

题意:有n个人排成一列,每次前4个人玩一次游戏,每个人等概率获胜,获胜者留在队首,其余人按照原顺序排列到队位。当一个人连续胜利m次后,就成为赢家。现在求拍第k个位置的人获胜的概率。
nm10 n , m ≤ 10

这题乍一看很复杂,因为失败者会到队尾去,也就是说有可能继续参加游戏,所以整个游戏过程就变得极为复杂。

但其实不需考虑这么多。由于题目要求第k个人获胜的概率,那么我们完全可以忽略其他无关人士的影响。有谁会对当前这个人的胜率造成影响呢?显然只有队首的那个人,因为最终获胜的人肯定在队首。所以我们可以借助DP解决。
DP[i][j]表示队首的人获胜了i次,此时排第j号位置的人的胜率。转移方程很简单,只不过会形成环,所以要用高消解决。前4个人的转移稍微复杂一点,其他人都是一样的。这里就不再赘述。

这道题的精髓在于,不需要考虑无关因素,就是说不需要考虑到底初始编号为几的人赢了,编号为几的人输了。只需要关心当前队首的人即可。并且借助了DP来解决问题,同时用了高消,强烈建议实现这道题。

期望

期望题本质上和概率差不多,所以就少说一点题目了。

One Person Game

题意:有三个骰子,每个骰子有 ki k i 个面,当每个骰子的点数分别为a、b、c时,回到原点,否则前进点数之和的步数。求到达目标的期望掷骰子次数。

转移方程很好写

dp[i]=x1k1,x2k2,x3k3(x1ax2bx3c)dp[i+x1+x2+x3]×1k1k2k3+dp[0]1k1k2k3 d p [ i ] = ∑ x 1 ≤ k 1 , x 2 ≤ k 2 , x 3 ≤ k 3 且 ( x 1 ≠ a 或 x 2 ≠ b 或 x 3 ≠ c ) d p [ i + x 1 + x 2 + x 3 ] × 1 k 1 k 2 k 3 + d p [ 0 ] 1 k 1 k 2 k 3
,只不过会仍然会形成环。但这道题不需要高消。观察发现,每个点都只会和dp[0]扯上关系,而我们的答案正是dp[0],所以只需要将每个dp值用dp[0]表示出来即可。

Time travel

高消求期望

Name That Tune

题意:有n首歌,每首歌有一个长度 ti t i ,同时有一个识别率 pi p i 表示每秒钟都有 pi p i 的概率识别出这首歌,当这首歌放完时,就一定能识别出这首歌。求能依次识别的歌的数量的期望。

dp[i][j] d p [ i ] [ j ] 表示在前i秒,刚好听完j首歌的概率。
转移需要优化。还要卡卡常(5000*5000可能会卡一卡),题目本身很简答,这里就不再多说。

总结

总的来说,这类题目难度波动很大,有很恶心的,也有非常水的,也有看起来恶心其实水的,以及看起来水其实很恶心的(废话)。但其实做多了也不觉得恶心了,每道题概率期望那一部分都已渐渐成为套路,只是每道题各有各的特点而已。

你可能感兴趣的:(总结,数论,DP,高斯消元,数学,概率与期望)