python实现

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)

  

相关文章:

  • 2022-12-23
  • 2021-07-16
  • 2021-12-14
  • 2021-11-13
  • 2022-12-23
猜你喜欢
  • 2021-12-09
  • 2021-10-06
  • 2021-08-25
  • 2021-07-12
  • 2022-03-03
  • 2021-11-29
相关资源
相似解决方案