第5章 概率分析和随机算法
本章通过四个例子来理解概率分析和随机算法。
5.1 生日悖论
问题:一个屋子里人数必须要达到多少人,才能使其中两人生日相同的机会达到50%?
5.1.1 概率分析
至少有两个人生日相同的概率 = 1 - 所有人生日都不相同的概率。
Bk=⋂i=1kAi
其中 Ai 是指所有 j<i , i 与
Pr(Bk)=Pr(Bk−1)Pr(Ak|Bk−1)
其中 Pr(Ak|Bk−1)=(n−k+1)/n ,所以有
Pr(Bk)=Pr(B1)Pr(A2|B1)Pr(A3|B2)⋯Pr(Ak|Bk−1)=1(n−1n)(n−2n)⋯(n−k+1n)≤e−1/ne−2/n⋯e−(k−1)/n=e−k(k−1)/2n≤1/2
n=365时,k>=23。
5.1.2 概率分析
定义指示器随机变量
Xij
,有
E[Xij]=1/nX=∑i=1k∑j=i+1kXijE[X]=E[∑i=1k∑j=i+1kXij]=∑i=1k∑j=i+1kE[Xij]=C2k1n=k(k−1)2n
当 k(k−1)≥2n 时,生日相同的两人对的期望数至少是1。
5.2 球与箱子(礼券收集者问题)
问题:b个箱子,在平均意义下必须要投多少个球,才能每个箱子至少都投进一球(球落在每个箱子等可能的)。
第i阶段包括从第i-1次命中到第i次命中之间的投球。设
ni
表示第i阶段的投球次数,所以b次命中所需的投球此参数为
n=∑i=1bni
,而
E[ni]=bb−i+1
所以有
E[n]=E[∑i=1bni]=∑i=1bE[ni]=b∑i=1b1i=b(lnb+O(a))
5.3 特征序列
问题:假设抛投一枚标准的硬币n次,最长连续正面的序列的期望长度有多长?答案是 Θ(lgn)
主要思想是得到期望的一个下界,过程太长。。。这里略=。=具体分析过程见书P76-77
5.4 在线雇佣问题
问题:公司应聘员工,当有更好的申请者出现则雇佣新人解雇旧人,如何在最小化面试次数、雇佣成本和最大化雇佣应聘者的质量取得平衡。
策略:选择一个正整数
k<n
,面试然后拒绝前k个应聘者,再雇佣其后比前面最高分数还高的第一个应聘者。
Pr(S)=∑i=k+1nPr(Si)=∑i=k+1nkn(i−1)=kn∑i=k+1n1i−1=kn∑i=kn−11i
求下界最大化,得到 1n(lnn−lnk−1)=0 ,即 k=n/e 时,概率下界最大化。因此,如果用 k=n/e 来实现我们的策略,那么将以至少 1/e 的概率成功雇佣到最好的应聘者。