如何随机选取1000个关键字

来源:互联网 发布:js event.target 编辑:程序博客网 时间:2024/04/25 03:22

如何随机选取1000关键字

给定一个数据流,其中包含无穷尽的搜索关键字(比如,人们在谷歌搜索时不断输入的关键字)。如何才能从这个无穷尽的流中随机的选取1000个关键字?

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

     解决方案就是蓄水库抽样(reservoid sampling)。主要思想就是保持一个集合,作为蓄水池,依次遍历所有数据的时候以一定概率替换这个蓄水池中的数字。

程序的开始就是把前k(本题1000)个元素都放到数组中,然后对之后的第i(i>k)个元素,以k/i的概率替换掉这个水库中的某一个元素。而替换水库中的元素是在蓄水池中随机的选择的一个数,这样就能保证这个数据流中的数据随机出现。






0 0