python实现
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 |
import
timeimport
randomimport
copydef 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 =
5print
reservoirSampling(a, k) |
原文:http://www.cnblogs.com/ledao/p/3661623.html