Algorithm 概率租用-辅助
这是一个解决雇佣助理问题的算法Algorithm 概率租用-辅助,algorithm,combinations,permutation,probability,Algorithm,Combinations,Permutation,Probability,这是一个解决雇佣助理问题的算法 HIRE-ASSISTANT(n) best <- 0 for i <- 1 to n do if candidate[i] is better than candidate[best] best <- i hire candidate i 招聘助理(n) 最佳雇佣至少两次的概率是(n-1)/n。 假设你有一个随机排列的候选人,你只雇用一个候选人,当且仅当第一个候选人也是最好的。它发生的概率是
HIRE-ASSISTANT(n)
best <- 0
for i <- 1 to n do
if candidate[i] is better than candidate[best]
best <- i
hire candidate i
招聘助理(n)
最佳雇佣至少两次的概率是(n-1)/n
。
假设你有一个随机排列的候选人,你只雇用一个候选人,当且仅当第一个候选人也是最好的。它发生的概率是1/n
。因此,这种情况不会发生的概率(并且您将雇佣两次或更多)是1-1/n=(n-1)/n
要雇用两次:
- 为“最佳”选择一个位置(不是第一个):
n-1
可能性。让这个地方成为我
- 对于每一个这样的位置,选择i-1候选人排在最佳候选人之前:
choose(n-1,i-1)
- 这些i-1候选人中的第一个是最好的。需要替换其余的:
(i-2)代码>
- 此外,还需要为(n-i-1)个“最佳”后的候选人进行排列:(n-i-1)李>
这为我们提供了“有效”排列的总数,其中恰好有两名候选人被雇佣:
f(n) = Sum[ Choose(n-1,i-1)*(i-2)!*(n-i-1)! | for i=2,...,n]
概率就是p=f(n)/n代码>事实上,在第四个项目中,我们需要排列(n-i)个候选人,以便最终答案减少到p=1/n*H(n-1),其中H(n-1)是(n-1)次谐波数。雇佣两次的概率是多少?
恰好两次或至少两次?这个问题似乎离题了,因为这是一个概率问题,不是编程。我想这个答案有一个小错误,但我的编辑被拒绝了:剩下的候选项是(n-I)
,而不是(n-I-1)
很多。