对于我正在处理的应用程序,我需要从一个非常大的数据集中抽取一小组值,从大约 60 万亿(并且还在增长)中抽取大约几百个值。
通常我使用查看均匀随机数 r (0..1) 是否小于 S/T 的技术,其中 S 是我仍然需要的样本项目数,T 是我在集合中的项目数还没考虑。
但是,有了这些新数据,我没有时间为每个值掷骰子。太多了。相反,我想生成随机数量的条目以“跳过”,在下一个位置选择值,然后重复。这样我就可以掷骰子并访问列表 S 次。(S 是我想要的样本大小。)
我希望有一种简单的方法可以做到这一点,并按照 S/T 测试的方式创建一个公正的样本。
老实说,大致不偏不倚就可以了。
这与此人的问题有关(或多或少是后续问题):
https://math.stackexchange.com/questions/350041/simple-random-sample-without-replacement
- 还有一个问题……第一个展示给我看的人称它为“邮递员算法”,但我不确定他是否在拉我的腿。是对的吗?