工作生活

蓄水池采样算法

2019-06-30  本文已影响0人  HamletSunS

解决问题:
在不知道数据规模n的前提下,实现以\frac{k}{n}的概率去数据进行采样
思路:
首先设计容量为k的容器C,把前k个元素放入,之后遍历到第m个元素时,以\frac{k}{m}的概率选中当前元素,若当前元素被选中,则以\frac{1}{k}的概率替换容器C中的元素(即容器C中的元素被替换的概率相同)。遍历完成后,可以保证数据中每个元素均以\frac{k}{n}的概率被选中。
证明:
不写详细过程,只写大概思路:

上一篇下一篇

猜你喜欢

热点阅读