雇用问题
- 目前公司的候选人的编号是1 到 n。创建虚拟应聘者,编号 0,他比其他应聘者都要差
HIRE-ASSISTANT(n)
1. best=0
2. for i=1 to n
3. interview candidate i
4. if candidate i is better than candidate best
5. best=i
6. hire candidate i
- 面试费用= ci ; 雇佣费用= ch , 雇佣人数=m,总人数=n
- 总费用= O(cin+chm)
最坏情况分析
- O(chm)
概率分析
- 确定输入的分布
- 均匀分布:等可能
- 计算期望运行时间
指示器随机变量
- 给定样本空间:S 和一个事件 A,那么事件A 对应的指示器随机变量I{A}:
I(A)=1 ……… 如果A发生
I(A)=0 ……… 如果A不发生
指示器分析雇佣问题
- 计算雇佣一个新的办公助理的期望次数
X是随机变量=我们雇佣一个新的办公助理的次数
E[X]=∑nx=1xPr {X=x}…………….原始期望公式定义: Xi 对应于第 i个应聘者是否雇佣的指示器随机变量
Xi=I {应聘者i是否被雇佣}=1 ………….. i被雇佣
Xi=I {应聘者i是否被雇佣}=0 ………….. i未被雇佣
X=X1+X2+......+Xn- E[Xi]=Pr {应聘者i被雇佣的概率}
结论
- 应聘者i 比从 1 到 i-1, 则i 更有资格的概率是 1/i. E[Xi]=1/i
- E[X]=E[∑ni=1Xi]=∑ni=1E[Xi]=∑ni=11/i=lnn+O(1)
随机算法
//随机雇佣问题//随机的改变应聘者的顺序
RANDOMIZED-HIRE-ASSISTANT(n)
0. randomly permute the list of candidates
1. best=0
2. for i=1 to n
3. interview candidate i
4. if candidate i is better than candidate best
5. best=i
6. hire candidate i
概率分析和随机算法
- 概率分析:输入做假设,例如服从均匀分布
- 随机算法:随机化输入
随机排列组合
概率分析 和 指示器随机变量的进一步使用
生日悖论
- 屋子内必须要最少多少人,才可以使其中两个人生日相同的概率达到50%
- 设:k=屋内人数, n=365,
bi
是编号为 i的人的生日,设生日均匀的分布在365天内
则 Pr { bi=r }=1/n; 两个人 i 和 j的生日同时都落在一天的概率
Pr{ bi=r且bj=r }=Pr{ bi=r }Pr{ bj=r }=1/ n2 - 则落在同一日的概率是:
Pr{ bi=bj }= ∑nr=1 Pr{ bi=r且bj=r }= ∑nr=1(1/n2)=1/n - 选定两人,则两人在同一天生日的概率是1/n
k个人中至少两人的生日相同的概率
至少两个人生日相同的概率等于1 减去 所有人生日都不同的概率。k个人生日都互不相同的事件是:
Bk=⋂ki=1Ai ……… 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 ………. n天中有 n-(k-1)天没有用
Pr{ Bk }=Pr{ Bk−1 } Pr{ Ak|Bk−1 }
=Pr{ Bk−2 }Pr{ Ak−1|Bk−2 }Pr{ Ak|Bk−1 }
……
=Pr{ B1 }Pr{ A2|B1 }……Pr{ Ak|Bk−1 }
= 1∗(n−1)n∗n−2n......n−k+1n
= 1∗(1−1n)∗(1−2n)......(1−k−1n)
又因为: 1+x<=ex
可得:
Pr{ Bk }<= e−1n e−2n …… e−(k−1)n
= e−∑ki=1i/n=e−k(k−1)/2n <=1/2n=365 ……. =>…….k>=23
指示器分析
- 每一对(i, j) 定义指示器变量
Xij
=
I
{
i和j生日相同
}=1 …….. 如果i和j相同
Xij
=
I
{
i和j生日相同
}=0 …….. 如果i和j不相同
- 两个人相同的概率是 1/n
- E[Xij] =Pr{ i和j的生日相同 }=1/n
设:X表示计数生日相同的两人对数目的随机变量: X= ∑ki=1∑kj=i+1Xij
E[X]=E[∑ki=1∑kj=i+1Xij] = ∑ki=1∑kj=i+1E[Xij] = (k2)1n=k(k−1)2n
当且仅当 k(k-1)>=2n 时,期望至少为1 ……. k=28
复杂度
O( n−−√ )
球与箱子
- 将相同的球投入到b个箱子,求落入任意一个箱子的概率是 1/b
几何分布
- 一系列伯努利试验,成功的概率
p
, 失败的概率
q=1−p , 获取一次成功需要进行多少次试验 - 因为:k-1次是失败所以
Pr { X=k }= qk−1p
E[X]=1/P …… Var [X]=q/ p2
二项分布
- 一系列伯努利试验,成功的概率
p
, 失败的概率
q=1−p ,则n次试验会有多少次成功? - Pr{
X=k
}=
(nk)pkqn−k
E[x]=np …… Var[x]=npq
超几何分布
超几何分布:在含有M见次品的N件产品中取出n件,其中恰好有X见次品的概率
p(X=k)=
C(M,k)∗C(N−M,n−k)C(N,n)
特征序列
- 抛硬币n次, 最长连续正面的序列的期望长度是: O(lgn)
设:事件 Aik=长度至少为k的正面特征开始于第i次 ,给定 Aik ,所有 k 次都朝上的概率是
Pr{Aik }=1/ 2k对于 k=2[lgn]
- Pr{
Ai,2[lgn]
}=
122[lgn]<=1/22lgn
=
1/n2
长度是2[lgn], 起始于位置 i 的一个正面特征的概率。起始位置至多有 n−2[lgn]+1个 - 长度至少为 2[lgn] 的正面序列开始于任意位置的概率
Pr{ ⋃n−lgn+1i=1Ai,2[lgn] }<= ∑n−2[lgn]+1i=11/n2<∑ni=1/n2=1/n
- E[L]= ∑nj=0jPr { Lj } < O(lgn)
在线雇佣
省略