一道有关等概率抽取的题目
题目是这样子的:
有一个文本,事先不知道数据行数,要求等概率抽出1000行来,只准读1遍(即表示你对每一行的选择是二维的,要么要,要么不要,如果选择不要这一行那么再没有机会选择这一行了)
?
题目主要有两个难点,一个是保证等概率,另一个是对于当前行是要还是不要呢
这个题目的解法目前我只知道以下这种,如果你知道更多的解法,欢迎留言讨论
解法:
?
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?
?