http://www.cnblogs.com/kuangbin/archive/2012/10/02/2710606.html
有关概率和期望问题的研究
摘要
在各类信息学竞赛中(尤其是ACM竞赛中),经常出现一些与概率和期望有关的题目。这类题目需要较高的数学水平和一定的算法技巧,必须经过仔细分析,选择合适的数学模型和算法才能顺利的解决问题。本文就对这类题目的一些常见方法进行了研究。
数学基础
这里写的数学基础是有关概率和期望的一点简单的计算法则,虽然我们都很熟悉,但是有时也可能会忘记使用,所以在这里列出来,也作为以后内容的基础。
概率的运算
Ø 两个互斥事件,发生任一个的概率等于两个事件的概率和
Ø 对于不相关的事件或者分步进行的事件,可以使用乘法原则。
Ø 对于一般情况p(A+B)=p(A)+p(B)-p(AB)
期望的运算
Ø E(φ)= ΣφiPi,这是期望的定义,其中φi是一个取值,而Pi是取这个值的概率
Ø 期望有“线性”,也就是说对于不相关的两个随机变量φ和ξ,E(φ±ξ)=E(φ)±E(ξ);E(φξ)=E(φ)E(ξ);E(φ/ξ)=E(φ)/E(ξ)
Ø 在某些情况下,期望可以表示成一个无穷的等比数列,然后利用极限的思想来求。
当然,这些只是最基础的知识,要解决好概率和期望的问题,还需要掌握一些组合数学的知识。
常用方法
方法1 直接计算
这种方法说起来很简单,就是推导出一个数学公式,然后通过程序来计算这个式子的值。这样的题目在与概率和期望有关的题目中比例不小,但是由于它们大都需要一定的组合数学基础,而一旦推导出公式,对算法的要求并不太高,而时间复杂度往往也比较低,所以这类问题不是本文的重点。有关内容可以在任何一本组合数学书中学到。
例一 百事世界杯之旅[1]
“……在2003年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字。只要凑齐所有百事球星的名字,就可以参加百事世界杯之旅的抽奖活动,获取球星背包、随身听,更可以赴日韩观看世界杯。还不赶快行动!……”
你关上电视,心想:假设有n个不同球星的名字,每个名字出现的概率相同,平均需要买几瓶饮料才能凑齐所有的名字呢?
输入输出要求
输入一个数字n,2≤n≤33,表示不同球星名字的个数。
输出凑齐所有的名字平均需要购买的饮料瓶数。如果是一个整数则直接输出。否则就用下面样例中的格式分别输出整数部分和小数部分。分数必须是不可约的。
样例输入和输出
输入 |
输出 |
2 |
3 |
5 |
5 11—------ 12 |
17 |
340463 58 ----------------- 720720 |