我有一组 455 个项目,我从中随机选择最多 160 个项目,并进行替换。首先,我使用 srand()
播种,然后使用 rand()
选择每个数字。我观察到,在我选择的多达 160 个项目中,我倾向于看到至少有 10 个项目不止一次被选中。这似乎表明随机数不是均匀分布的。
有没有办法让随机数分布更均匀?
最佳答案
您对结果的直觉是错误的。如果数字是真正随机的,并且均匀分布在 0 到 455 之间,那么在 160 个数字的集合中至少有 10 个重复的概率实际上是相当高的(实际上这是一个虚拟的确定性)。非正式地,这被称为“生日悖论”,尽管它实际上并不是一个悖论。
此图表显示了当您从一组 455 个值中选择 160 个独立同分布值并进行替换时,出现不同数量重复值的概率。如您所见,实际上最有可能得到 22 个重复值,其中几乎你不可能少于 10 或多于 35。
关于c - 生成均匀分布的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8291871/