概率相关问题

'''算法导论 原书第三版'''
'''1.雇佣模型:有n个人,开始面试,如果第i个人比1到i-1个人都要好,就雇佣他。注意前面雇佣的人就不会解聘
的。问:最后趋近于雇佣几个人。答案:log(n),因为第i个人被雇佣的概率是表示当前只有i个人,他恰好拍到
第一名,所以概率是1/i。所以答案是sum(1/i)。所以log(n)
2.洗牌算法:
for i in n:
swap A[i] with random(i,n)
证明:首先n=1,2时候显然成立,如果n=k成立。那么n=k+1时候第一个位置概率显然是变成了1/(k+1),。。。
最后一个位置只在最后一次洗了一次所以也是1/(k+1),证毕
3.permute-without-identity
洗牌算法的修改版:好像不能保证每一个元素放在任何位置的概率都相同,因为总共排列情况是
n!-1他不是n的倍数。
退而求其次:只保证任何情况都能遍历到,而不保证等概率。
上面洗牌算法后面加个判断,if 新牌==就排,就继续洗一次
4.生日悖论:一年有n个天,那么要ln(n)个人就能保证有2个人同天出生的概率大于1/2
5.箱子和球:有n个箱子,每一次往里面放一个球,nln(n)次投球能保证我们指定的箱子
里面有一个球.这个计算略微复杂:第i次投球成功使得
有球的箱子数目加1的概率是(n-i+1)/n,那么根据不努力实验知道期望增加n/(n-i+1),
sum(n/(n-i+1))趋近于nln(n)
6.特征序列。连续扔一个硬币n次,最长连续证明的序列的期望的长度有多长:Oln(n),计算很复杂
7.在线雇佣问题:好变态的问题:
我们愿意雇佣接近最好的应聘者,只雇佣一次。要求,每次面试我们必须马上提供给应聘者,或者马上拒绝
改应聘者,如何再最小化面试次数和最大化应聘者的质量这连个方面取得平衡。
答案是k=n/e,这样至少保证了1/e的概率面试到最好的应聘者。也就是公司为了省钱只面试前百分之40不到
的人也行。但是面试的人要更少就会效果非常差。'''

 

 
View Code
原文地址:https://www.cnblogs.com/zhangbo2008/p/8521658.html