首页 > 其他 > 详细

蓄水池采样算法

时间:2014-04-13 10:48:52      阅读:358      评论:0      收藏:0      [点我收藏+]

python实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import time
import random
import copy
 
def reservoirSampling(seq, k):
    localSeq = copy.deepcopy(seq)
    N = len(localSeq)  
    for i in xrange(k, N, 1):
        M = int(random.uniform(0, i))
        if M < k :
            temp = copy.deepcopy(localSeq[M])
            localSeq[M] = copy.deepcopy(localSeq[i])
            localSeq[i] = temp
    return localSeq[0:k]
     
a = [4,5,6,3,4,7,7,4,3,3,2,4,5,5,6,9,5,4,3,45,3,23,44,55,33,5,8]
k = 5
 
print reservoirSampling(a, k)

  

蓄水池采样算法,布布扣,bubuko.com

蓄水池采样算法

原文:http://www.cnblogs.com/ledao/p/3661623.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!