于是,我们引入池塘抽样法(又称水塘抽样) 池塘抽样法 从S中抽取首k项放入「水塘」中 对于每一个S[j]项(j ≥ k): 随机产生一个范围从0到j的整数r 若r < k 则把水塘中的第r项换成S[j]项 用枚举数组S{1,2,3}来帮助理解: 当遍历到S[1]时,概率为1,只有一个数那肯定不存在均等的概念 S[2]时,有两个数,那么使用随机函数(这里假定
即可 那么,运用水塘抽样算法,我们可以发现,对于第 i 个元素,其随机值为0的概率 ,这只是表示该元素此时被选中的概率,最终如果确定选择该元素,则还需要后续元素不被选中(否则会被替换掉) 此时,元素 i 被选中的概率为: 因此,每个元素被选中的概率都是 ,实现随机抽样 扩展:对于抽样元素不为1时,假设抽样个数为 m...