`
乌拉蕾
  • 浏览: 72163 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

一道有关等概率抽取的题目

阅读更多


题目是这样子的:

有一个文本,事先不知道数据行数,要求等概率抽出1000行来,只准读1遍(即表示你对每一行的选择是二维的,要么要,要么不要,如果选择不要这一行那么再没有机会选择这一行了)

 

题目主要有两个难点,一个是保证等概率,另一个是对于当前行是要还是不要呢

这个题目的解法目前我只知道以下这种,如果你知道更多的解法,欢迎留言讨论

解法:

 

假设:i为当前记录序号,S所有采样,要求采样的数量为n,i = 1,2,3...

1. 当i <= n的时候,都放到S
2. 当i>n的时候,每次生成[1, i]均匀分布的随机数r,如果1<=r<=n,就用当前记录i替换掉S中第r个记录
 

那么对于该解法的证明如下

 

A.	首先,假设当前S中的样本都是符合题目要求的 那么显然,每个新到的记录有n/i的概率被选中,符合题目要求(题目要就就是一共有m个元素的话,那么每个元素被选中的概率都应该是n/m)
B.	再看之前就在S中的记录,因为假设符合要求,那么S中的一个元素,在i到来之前,是以 n/(i-1)的概率选出的,i到来后,它被抽到去掉的概率是1/i,那么保留的概率是(i-1)/i,这样最终它在S中的概率就是(n/(i-1))  * ( (i-1)/i) = n/i
 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics