考虑这个问题: - Efficiently picking a random element from a chained hash table?
并考虑它的第一个答案。它建议了一种以均匀随机方式选择密钥的方法。但是,我不清楚这一点。第一步将采用概率1/m
(即从m桶中随机选择一个桶)
第二步可分为两个步骤:
1)如果k<=p
,则返回p
2)如果k>p
,则循环再次运行
这样做直到返回p为止
因此,选择密钥的概率是:
(1/m)[(k1/L)+((L-k1)/L)[(1/m)[(k2/L)+((L-k2)/L)[(1/m)[(k3/L)+((L-k3)/L)[......and so on.
现在,它如何等于1/n
?
答案 0 :(得分:0)
这是rejection-sampling的一种形式。
L / size-within-b0 = L/2
)作为 b1 中的一个,因为存储桶是统一的选择;但是要采样的元素数量不同。