第三十八天(蓄水池抽样)

今天完成题目:398

import random

print( random.randint(1,10) )        # 产生 1 到 10 的一个整数型随机数  
print( random.random() )             # 产生 0 到 1 之间的随机浮点数
print( random.uniform(1.1,5.4) )     # 产生  1.1 到 5.4 之间的随机浮点数,区间可以不是整数
print( random.choice('tomorrow') )   # 从序列中随机选取一个元素
print( random.randrange(1,100,2) )   # 生成从1到100的间隔为2的随机整数

a=[1,3,5,6,7]                # 将序列a中的元素顺序打乱
random.shuffle(a)
print(a)

398:随机数索引

  • 相当于蓄水池样本为1,总数为count(即target的索引数量)

  • 利用random.randint(0,count) < 1时,来更新index(这里1,是蓄水池的样本数)

    • 当有三个数时候

    • 第三个数被选中的概率 = 1/3,此时count在更新之前为2

    • 第二个数被保留的概率 = (1-1/3)*1/2 = 1/3

    • 第一个数被保留的概率 = (1-1/3)*(1-1/2)*1 = 1/3

最后更新于

这有帮助吗?