介绍
1.在笔试面试中常作为客观问题出现(选择题)。
2、在笔试中往往出现概率、期望的计算。
3、往往利用古典概率进行计算(组合数学)。
概率的应用
1、利用概率改进著名算法(快速排序)
利用概率产生比较好的划分值,最终使算法的期望时间复杂度为O(n * logn),所以概率一般用来打乱输入,打乱输入之后算法的复杂度和输入的分布没有关系,这样从概率上放置最坏情况的出现
2、随机数发生器
要产生纯随机序列是一个比较难的过程,通常面试中会给定一个随机数的发生器,让面试者利用这个发生器构造出另一个随机数的发生器,工程中,概率主要用于随机采样,即面试中会问如何利用一个随机数的发生器对一批数据进行采样。
经典题
-
有8支球队,其中有3支强队和5支弱队,随机把它们分成4组进行比赛,则强强相遇的概率是多少
1、总共的分法有:7 * 5 * 3 * 1 = 105种
2、两强不相遇的分法有: 种
3、两强相遇的概率为 (105 - 60) / 105 -
3只蚂蚁,从正三角形的三个顶点出发,它们移动的速度相同,则碰头的概率是多少
1、总共有23种走法
2、不相遇的走法有2种
3、相遇的概率为:(8 - 2) / 8 -
一个地区重男轻女,每个家庭都是一直生小孩直到生男孩为止,问在足够长的时间后,该地区的男女比例是多少
n / 2的家庭生了一个男孩,孩子数位1
n / 4的家庭生了一个女孩一个男孩,孩子数位2
n / 8的家庭生了两个女孩一个男孩,孩子数位3
……
n / 2k的家庭生了k - 1个女孩一个男孩,孩子数位k
则足够长的时间后该地区孩子总数为1 * n / 2 + 2 * n / 4 + 3 * n / 8 + …… + k * n / 2k = 2 * n
每个家庭有一个男孩,所以共有n个男孩,所以男女比例为1 :1 -
给定一个等概率随机产生1 ~ 5的随机函数f(n),除此之外不能再用其他随机机制,请实现随机产生1 ~ 7的随机函数
1、f'(n) = f(n) - 1:产生0 ~ 4的随机数
2、f(n) = 5 * f(n):随机产生1、5、10、15、20、25中的数
3、f(n) = f(n) + f'(n):产生1 ~ 25的随机数
4、用f(n)可产生1 ~ 20中的随机数(如产生随机数大于20则舍弃)
5、f(n) = f(n) % 7:产生0 ~ 6之间的随机数
6、f(n) = f(n) + 1:产生1 ~ 7之间的随机数 -
给定以p概率产生0,以1 - p概率产生1的随机函数,p固定且未知,请实现等概率产生0 1随机数的随机函数,不可以使用额外的随机机制
1、利用随机函数产生两个数,则产生序列为0 1和1 0的概率相等且为:p * (1 - p)
2、两次利用随机函数产生一个序列,若产生0 1记0,若产生1 0记1,其他则舍弃