概率论01 计数
概率
概率论研究的是随机或者说不确定事件。 它最早产生于赌徒对赌博结果的研究,(即使是今天,概率论也经常用于赌博)。既然是随机的事件,那么结果是否就只能凭运气呢?高明的赌徒发现了赌博中的一 些规律。投掷两个撒子买大小是常见的赌博游戏。赌徒发现,如果重复很多次,那么出现总数为2的次数会比总数7少。尽管我们无法预知每次事件发生的具体结 果,但我们可以了解每种结果出现的概率,这就是概率论的核心所在。
“概率”是一个怎样的概念呢?这在数学 上还有争议。“频率派”认为概率是重复尝试多次,某种结果出现的次数在尝试的总次数的比例。“贝叶斯派”认为概率是主观信念的强弱。幸好,这些争议并不影 响我们在日常生活中建立起来的粗糙的“概率”观点。天气预报降雨概率为80%时,会有很多人捕捉到这里的“概率”所表达的意思,因此带上伞。报纸会提前分 析一场球赛某支球队的赢球概率,如果最终赢球概率为10%的球队取胜,那么球迷会感到惊讶,而称之为“冷门”。
在现实中,要知道某个结果的概率并不容 易。上面分析球队的赢球概率,要考虑海量的因素。再比如,简单到投一个骰子,出现1点的概率。在这种情况下,有6种可能的结果。各种各样的物理情况会影响 结果的概率,比如撒子是否均匀,比如掷撒子的人是否有技巧偏向。如果骰子是均匀的,且没有作弊,那么每种结果出现的概率相同。为了能从数学上给结果分配一 个概率,我们往往会加上一些假设。这些假设有理想化的成份,但并不至于偏离现实。比如,我们说掷撒子,撒子均匀,掷的人也没有什么特殊手法,并由此推断每 种结果出现的可能相同。那么,其中任意一个结果出现的概率为1/6。
基本计数原理
上面我们谈到了“等概率”的假设。如果每种结果出现的概率相同,那么给结果分配概率的任务就变得简单一些。在计算这种概率时,我们往往需要知道所有可能的结果。比如掷一个撒子会有6种结果。对于一些复杂的情况,就需要使用到计数技巧。
计数的基本原理叙述如下:
如果一个实验可以分为m个步骤,每个步骤分别有种可能,那么总共会有
种可能的结果。
基本技术原理的核心是“分步”。 对于简单的一个步骤的事情,我们能比较直接的分辨结果的总数。比如生一个孩子的性别,比如一个硬币的正反,比如一个撒子的结果。当一个随机事件是多个步骤 复合而成的,而每个步骤又都是随机的,那么分布可以简化问题的复杂性。想像一个餐厅,有三个窗口,分别卖三种饮料,五种菜和两种主食。每个学生在每个窗口 限选一种,那么学生的餐饮配套会有3x5x2共30种可能的结果。如果每个窗口的师傅都很随意霸道,随手给学生一样东西,那么我们甚至于可以假设等概率条 件,每种餐饮拍套出现的概率为1/30。(当然,作为学生,会抗议这样的“随机”食堂吧?)
基本计数原理的应用并不局限于概率论。 在程序员进行算法分析时,无形中使用的就是进行计数。比如嵌套循环,外循环需要M步,内循环需要N步,那么总共进行操作的次数是MxN次。可以说,计数是 “离散数学”非常重要的一个组成部分;而离散数学,正是计算机专业的核心数学课程。
基本计数原理是思考的起点。现实中的情况往往会更多变些。特别是当我们“分布”的动作都是作用于同一个群体时,会相对复杂。我们分类了解以下情形:
有序的重复抽样
考虑下面的两个问题:
- 一个骰子连续掷2次,所有可能的结果有多少个?
- 一个彩票可选6个号,每个号可以是0到9,共有多少个可能的结果?
我们可以看到,这一类的抽样结果是由多 次抽样构成的。每次抽样的样本,在下一次也可能出现。比如骰子第一次为1,第二次还可能为1。这叫做重复抽样 (或者说有放回的抽样,sampling with replacement)。在骰子的例子中,每次抽样的可能出现的结果都有6种。
样本出现的次序影响结果。比如(1,2)和(2,1)是两个不同结果。
从数学上来说,如果进行m次有放回的抽样,每次抽样都有n种可能。如果最终结果有序,那么将有
种可能。
我们下面模拟骰子的例子:
共返回36个可能的结果:
[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6),
(2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6),
(3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6),
(4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6),
(5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6),
(6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6)]
36
如果每种结果的出现概率相同,那么对于其中的某个具体结果来说,它出现的概率P=1/36。p
有序的非重复抽样
考虑下面两个问题:
- 从4个人中,挑出2个人分别担任队长和副队长,有多少种可能?
- 从10们课种,挑选3们,分别放入周一、周三、周五的课表,有多少种可能?
可以看到,这样的抽样是没有重复的。某一次抽样的样本在此后不会出现,前面一个步骤的动作减少了后面一个步骤的选择,这叫做非重复抽样。在非重复的前提下,每次抽样可能的结果数递减,比如从4个人中选一个作为队长,那么副队长只能从3个人中选择。
同样,结果是有序的。A担任队长,B担任副队长,与A担任副队长,B担任队长,是两个不同结果。
有序的非重复抽样又叫做排列(permutation)。从数学上来说,从n个样品中挑选m个,放入m个位置,将有
种可能。如果我们使用阶乘(factorial)运算符,那么结果可以表示为
其中,
我们用下面的程序来模拟队长组合的状况:
结果为
[('Tom', 'Lee'), ('Tom', 'King'), ('Tom', 'James'),
('Lee', 'Tom'), ('Lee', 'King'), ('Lee', 'James'),
('King', 'Tom'), ('King', 'Lee'), ('King', 'James'),
('James', 'Tom'), ('James', 'Lee'), ('James', 'King')]
共有12种可能的结果.
无序的非重复抽样
考虑下面的问题:
- 从4个人中抽出2个人,有多少种可能?
- 从一副扑克中抽3张牌,有多少种可能?
在上面的问题中,每次抽样同样是非重复的。但这里,抽样结果是无序的。比如说,抽出"Lee"和"Tom",以及抽出"Tom"和"Lee",是同一个结果。这样的抽样方式叫做组合(combination)。
m个样品有m!种排列方式。如果是从n个样品中抽取m个作为组合,所有的这m!种排序方式应该看做一种。因此,有
种可能结果。我们可以用下面的方式记录组合:
我们下面来模拟第一个问题有以下结果:
[('Tom', 'Lee'), ('Tom', 'King'), ('Tom', 'James'),
('Lee', 'King'), ('Lee', 'James'),
('King', 'James')]
可以看到,从4个中挑选2个,有6种可能的组合。这是排列的一半。
组合的问题可以进一步延伸。比如,将9个球分为1, 3, 5个的三堆,有多少种方式?这相当于从9个球中抽取1个,再从剩下的8个球中抽取3个,最后剩下的5个为一堆。可以证明,结果为
类似的,将n个球分为个的堆,其中将有
种可能。
无序的重复抽样
考虑下面的问题:
- 刮奖彩票有4种奖品。购买3张彩票的话,有多少种中奖可能?
在上面的每次抽样中,都是重复抽样,即抽出后有放回。比如刮奖中,可以多次刮到同一奖品。我们在一个表中记录结果:
台灯 | 手表 | 电脑 | 汽车 | |
可能1 | 3 | 0 | 0 | 0 |
可能2 | 2 | 0 | 1 | 0 |
可能3 | 0 | 1 | 1 | 1 |
可以看到,我们实际上是将3张彩票分成4份,每份的数目不定(>=0)。
这与下面的问题类似,将5个相同物品放入三个不同的容器中:
我们用2个黑色分隔物,来将5个相同的物品分为3堆。比如这里,将物品分为(0, 2, 3)的结果。
从7个位置中挑选2个作为分割物的位置,共有
种可能。
概括来讲,从n个样品中,无序的重复抽样m次,有
种可能。