zoukankan      html  css  js  c++  java
  • reservoid sample 蓄水池问题

    题目:怎样从无穷尽流中等概率的抽样出一个单词?

    也许我们换一种说法会更加easy理解.等概率的抽取出一个单词,也即随机的抽取一个单词。

    本体的难点在于没有给定单词数,而是一个无尽的流。

    这个问题能够用蓄水池抽样的方法来思考。先简单的介绍一下蓄水池抽样(reservoid sample)算法,我们能够结合算法理解其原理。

     Init : a reservoir with the size: k
            for    i= k+1 to N
                M=random(1, i);
                if( M < k)
                     SWAP the Mth value and ith value
           end for

    该算法设定蓄水池的大小为k,也就是等概率的取出k个单词。

    即先把前k个数放入蓄水池,对第k+1。我们以k/(k+1)概率决定是否要把它换入蓄水池,换入时随机的选取一个作为替换项。这样一直做下去。对于随意的样本空间n,对每一个数的选取概率都为k/n。

    也就是说对每一个数选取概率相等。

    证明例如以下:

      

    蓄水池问题是一类问题,能够解决无穷尽流进行等概率抽取的问题。在工作中会有比較重要的应用。


    參考:http://www.cnblogs.com/HappyAngel/archive/2011/02/07/1949762.html



  • 相关阅读:
    DHCP服务搭建
    JumpServer跳板机
    PXE
    DNS
    MySQL
    企业级LNMP分离式部署
    MHA-Atlas-MySQL高可用集群2
    MHA-Atlas-MySQL高可用集群
    备份全网服务器数据
    FTP
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5388114.html
Copyright © 2011-2022 走看看