算法导论第三版 习题5.2-1和5.2-2 HIRE-ASSISTANT问题
来源:互联网 发布:insert mysql自增 编辑:程序博客网 时间:2024/06/06 18:23
HIRE-ASSISTANT简述:你需要雇佣一个办公助理,然后每次面试一个应聘者。如果该应聘者比之前的办公助理更优秀,就雇佣该应聘者为新的办公助理,同时辞去上一个办公助理。第一个应聘者总会被雇佣。
假设总共要面试n个应聘者,并且给应聘者以能力进行排序,每个应聘者都有一一对应的能力值rank。n个应聘者的名次rank数组为[1..n]。
5.2-1 在HIRE-ASSISTANT中,假设应聘者以随机的顺序出现,你正好雇佣一次的概率是多少?正好雇佣n次的概率是多少?
首先,正好雇佣一次,则必然是最佳助理rank=n出现在第一次面试,所以P=1/n。因为应聘者随机顺序出现,最佳助理等可能的出现在每一次面试,所以最佳助理第一次面试的概率P=1/n。
用指示器随机变量分析:
假设Xi表示第i个应聘者被雇佣的事件,则
Xi=I{应聘者i被雇佣}=
应聘者i被雇佣,是正好应聘者i比从1到i-1的每个应聘者优秀,即应聘者i的rank值最大。又应聘者是随机出现的,所以前i个应聘者任意一个都是等可能最优秀的,所以应聘者i最优秀的概率是1/i。因此,E[Xi]=Pr{应聘者i被雇佣}=1/i。同时,可以得到Pr(Xi=0,应聘者i不被雇佣的概率)=1- Pr{应聘者i被雇佣}=(i-1)/i。
雇佣n次,也就是每次都发生雇佣,所以事件雇佣n次的概率:P=X1*X2*..Xn=(1/1)*(1/2)*..(1/n)=1/n!。
用概率分析雇佣n次,那么雇佣n次必须满足所有的应聘者以单调递增的方式出现,即面试顺序必须为1,2,..n。因为应聘者随机顺序出现,所以在第i次面试中,每个应聘者都等可能的出现。在第i次面试时,前面i-1个面试者顺序已经确定,那么总共剩下了n-i个应聘者,此时概率那么rank=i的应聘者被面试的概率P=1/n-i。所以,P{n次雇佣}=1/n * 1/(n-1) *..1/1=1/n!。
5.2-2 在HIRE-ASSISTANT中,假设应聘者以随机的顺序出现,正好雇用两次的概率是多少?
解题思路:
首先我们可以直接观察三个结论:
(1) 1号助理总是会被雇用;
(2) 最佳助理(即rank为n的助理)总是会被雇用;
(3) 最佳助理不可能是1号助理,因为那样将只能刚好雇用一次。
满足以上三点,就可以满足两次雇佣。所以在使HIRE-ASSISTANT刚好雇用两次的序列中,一号助理必然有rank=i 且 i<=n-1,同时,所有rank在[i+1..n-1]区间内的助理必然在rank为n的最佳助理被面试之后面试。
1.设事件Ei表示应聘者i恰好作为1号助理被雇用的情况,则对于任意给定的i,有Pr{Ei}=1/n。
因为在第一次面试中,每个应聘者都等可能被选中,所以特定的i被第一次面试的概率为1/n。
2.设j指向最佳助理在面试序列中的位置,则若要满足两次雇佣,此时必须满足2、3、...、j-1号面试的应聘者的名次都要小于i。
设事件F表示2、3、...、j-1号助理的rank比1号助理低的情况。那么发生两次雇佣只有在Ei和F都满足的情况下发生,即F∩Ei,此时rank=i的助理作为第一个面试者被雇佣,第二次雇佣发生在最佳雇佣rank=n上,且仅有两次雇佣。
而F成立,当且仅当名次为i+1、i+2、...、n-1的应聘者在最佳助理n后面进行面试,否则[i+1 .. n-1]将会出现在[1..j]次面试中,从而发生雇佣。
假设Ei成立,F成立等价于当最佳助理在rank为i+1、i+2、...、n-1的n-i-1个助理在最佳助理n之后被面试。所以,Pr{F|Ei}=1/(n-i)。因为[i+1..n]共(n-i)个助理有(n-1)!种排列可能性,而n要排在最前面共有(n-i-1)!种排列,所以,Pr{F|Ei}=(n-i-1)!/(n-i)!=1/(n-i)。 另一种看法可以是,要是rank=n的助理出现在第一位,剩下的排序任意即可,而[i+1 .. n]总共有n-i个助理,每个助理等可能的出现在最前面,所以,Pr{F|Ei}=1/(n-i)。
设事件A表示HIRE-ASSISTANT刚好雇用两次的情况。因为最佳助理n不可能被第一个面试,于是我们有:
A=F∩(E1∪E2∪...∪En-1)
=(F∩E1)∪(F∩E2)∪...∪(F∩En-1)
Pr{A}=∑Pr{F∩Ei} (i<-1to n-1)
Pr{F∩Ei}=Pr{F|Ei}Pr{Ei}
=1/(n-i)*(1/n)
所以
Pr{A}=∑1/(n-i)*(1/n)(i<-1 to n-1)
=1/n*∑1/(n-i) (i<-1 to n-1)
=1/n*(1/(n-1)+1/(n-2)+...+1/1)
- 算法导论第三版 习题5.2-1和5.2-2 HIRE-ASSISTANT问题
- 算法导论第三版习题5.2
- 算法导论第三版习题32-1
- 算法导论 习题5.2-2
- 【算法导论】第三版课后习题2-4逆序对
- 算法导论 第三版 习题讨论
- 算法导论第三版4.1习题解答
- 算法导论第三版 15.1.5习题
- 算法导论第三版习题4.3
- 算法导论第三版习题4.4
- 算法导论第三版习题4.5
- 算法导论第三版习题5.1
- 算法导论第三版习题5.3
- 算法导论第三版习题5.4
- 算法导论第三版习题6.1
- 算法导论第三版习题6.2
- 算法导论第三版习题6.3
- 算法导论第三版习题6.4
- openstreetmap website部署
- kuangbin专题五 并查集 HDU1272 小希的迷宫
- Android Anatomy and Physiology
- Qml文件的两种加载方式|启动Qt quick app的两种方法
- springmvc传list参数
- 算法导论第三版 习题5.2-1和5.2-2 HIRE-ASSISTANT问题
- 判断横竖屏和切换
- linux网络编程2
- 2016 年度开源中国新增开源软件排行榜 TOP 100
- 安卓系统设置之Wifi连接
- 如何提高工作激情,打造狼性团队
- Python网络编程 4.3 DNS协议
- 如何配置DSI时钟频率
- cf450 BCDE(待补)