您的位置:首页 > 其它

《算法导论》第5章 概率分析和随机算法 个人笔记

2017-05-04 16:05 309 查看

第5章 概率分析和随机算法

本章通过四个例子来理解概率分析和随机算法。

5.1 生日悖论

问题:一个屋子里人数必须要达到多少人,才能使其中两人生日相同的机会达到50%?

5.1.1 概率分析

至少有两个人生日相同的概率 = 1 - 所有人生日都不相同的概率。

Bk=⋂i=1kAi

其中Ai是指所有j<i,i与j生日不同的事件,则有Bk=Ak∩Bk−1,可得递归式

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的概率成功雇佣到最好的应聘者。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法导论