蓄水池抽样算法是比较经典的算法,可以高效的在大数据中等概率且不重复采样,比如从一个大文件中等概率抽取m行内容打印出来。 说白了就是需要 从n个数中等概率且不重复取出m个数 (其中m<=n) 先贴出最终代码如下(数组下标从1开始可以更好阐述问题,所以我使用lua代码表示) --1.假设dataStream,是一个长度为n的数组 --2.定义pool数组用于存放最终采样出来的m个数 local pool = {} --3.算法 for i = 1,n do &nbs…
蓄水池抽样算法是比较经典的算法,可以高效的在大数据中等概率且不重复采样,比如从一个大文件中等概率抽取m行内容打印出来。 说白了就是需要 从n个数中等概率且不重复取出m个数 (其中m<=n) 先贴出最终代码如下(数组下标从1开始可以更好阐述问题,所以我使用lua代码表示) --1.假设dataStream,是一个长度为n的数组 --2.定义pool数组用于存放最终采样出来的m个数 local pool = {} --3.算法 for i = 1,n do &nbs…