随机抽奖算法¶
题目:
从 1- n 中随机抽取 k 个数。
from random import randint
def sample(population, k):
result = [None] * k
pool = list(population)
n = len(population)
for i in range(k):
j = randint(0, n-i)
result[i] = pool[j]
pool[j] = pool[n-i-1] # 把末尾的元素移动到抽出的位置
return result