sil*_*ker 4 algorithm combinations probability permutation
这是HIRE-ASSISTANT问题的算法.
HIRE-ASSISTANT(n)
best <- 0
for i <- 1 to n do
if candidate[i] is better than candidate[best]
best <- i
hire candidate i
Run Code Online (Sandbox Code Playgroud)
现在一些观察:
1.Candidate 1总是被录用.
2.最佳候选人,即等级为n的候选人,总是被雇用.
3.如果最佳候选人是候选人1,那么这是唯一被雇用的候选人.
现在的问题是招聘两次的概率是多少?
我的方法:
现在排在第n名候选人之前,我可以按照自己的意愿采访任意数量的候选人,但他们的排名顺序是固定的.因此,我排名第n候选人之前接受采访的候选人= C(n-1,i)*(ni-1) )!总案例是可能的.因此,从n-1变化i = 1,并且总和除以n的总可能性!我计算答案,但它与标准答案不符,所以我需要帮助才能找到错误的答案?
雇用至少两次的可能性是(n-1)/n.
假设您有候选人的随机排列,当且仅当第一个候选人也是最佳候选人时,您只雇用一个候选人.它发生的可能性是1/n.因此,它不会发生的可能性(你将雇用两次或更多)是1-1/n = (n-1)/n
要两次雇用:
n-1可能性.让这个地方成为我Choose(n-1,i-1)(i-2)!这给我们的是"有效"的排列的总数正好两个候选人被录用为:
f(n) = Sum[ Choose(n-1,i-1)*(i-2)!*(n-i-1)! | for i=2,...,n]
Run Code Online (Sandbox Code Playgroud)
概率很简单 P=f(n)/n!
| 归档时间: |
|
| 查看次数: |
3439 次 |
| 最近记录: |