CLRS - 随机搜索 - 如何计算预期的选秀数?

时间:2012-07-15 05:29:35

标签: algorithm probability

是CLRS问题。问题来自CLRS第三版:5-2-b。

随机搜索是一种算法,您必须随机选择一个元素并将其与搜索到的元素进行比较。如果等于,我们需要停下来。现在,假设您只有一个索引为i的元素,使得A [i] = x(x是数组中的搜索元素)。 在找到x之前,我们必须选择A的预期索引数量是多少? 另外,当我们有超过1个等于x的索引值时,我们怎样才能找到预期的索引数?

2 个答案:

答案 0 :(得分:1)

我们可以定义随机变量X =迭代次数,直到选择目标元素。如果你概括术语以便'迭代'被称为'试验'而'选择目标元素'被称为'成功',那么你有X =试验次数直到成功。

这个随机变量具有众所周知的分布。给定成功概率参数p geometric distribution。几何分布的期望值是E(X)= 1 / p。

要将几何分布应用于问题,必须确定成功概率p。对于只有一个索引包含目标值的情况,p = 1 / n,其中n是搜索集合的大小。所以在这种情况下,E(X)= n。

对于任意数量的索引映射到目标值的一般情况,p = m / n其中m是映射到目标值的索引的数量。所以在这种情况下E(X)= n / m。

答案 1 :(得分:0)

假设在找到元素x之前有k个失败。所以Pr {k failures} = k /(n-1)。现在E(X)= k = 1到n的Pr {k failure}之和。因此,E(X)= n(n + 1)/ 2(n-1)。