随机桶中的随机球:分布的特点是什么?

机器算法验证 分布 均匀分布
2022-04-11 17:52:54

我有 N 个桶,编号为 1 到 N。

我画了 k 个随机整数,均匀分布在 1 到 N 的范围内,有放回,并且对于每个整数,我将一个球放入相应的桶中。k 可以是任意大小;具体来说,它可以是从 2 到 N 的任何值,或者大于 N。

  • 最后每个桶中球数的统计特征(概率分布等)是什么?
  • 0,1,...k个球的桶数的统计特征是什么?

这个问题源于需要衡量散列算法的“好”(在某种意义上)。给定一个桶之间密钥分布的样本,我需要衡量它在“非常好”到“非常糟糕”的范围内的位置,并且能够计算出诸如“超过 x 的机会是多少”给定 k 和 N 的桶中的球?

显然,从我写这篇文章的方式来看,从我分配给变量的随机名称来看,我绝对没有统计上的复杂性。请温柔;我想学习。例如,请随意将变量名称更改为更传统的名称或其他名称。

1个回答

假设每个桶以相等的概率被选择,并且球是独立掉落的,那么每个桶中的球数将遵循具有次试验和的多项分布个球的特定桶的概率将由二项式概率给出,在这种情况下为 您可以使用它来获得如果很大并且的大小合理,那么我们可以使用泊松分布近似(或正态近似)。kp1=p2==pN=1/NxPr(X=x)=k!x!(kx)!(N1)kxNkPr(Xx)kk/N

个球的桶的预期数量将只是当然,桶中的总数不是独立的,但是)桶的总数将近似独立因此,我们可以个球的桶数的方差xNPr(X=x)MkMxNPr(X=x)(1Pr(X=x))

例如,如果我们有 1000 个球和 100 个水桶,我们预计 9.5 个水桶正好包含 12 个球,但这个数字的标准差是 2.9,所以大约有 95% 的概率介于 4 和 15 之间。 (见 R 代码)。

> p = dbinom(12, size=1000, prob=1/100)
> 100*p
[1] 9.516152
> sqrt(100*p*(1-p))
[1] 2.934379
> 100*p + c(-1, 1)*1.96*sqrt(100*p*(1-p))
[1]  3.764769 15.267534