如何从指定整数区间均匀获取n个不重复随机数?
实现方法
当然有,Python标准库random模块的sample()函数正好满足需求,一行代码就能搞定:
import random; nums = random.sample(range(Z), n)
range(Z)生成区间[0, Z)的整数序列,random.sample()会从中随机选取n个不重复的元素,无需自己实现拒绝采样——这个函数的内部实现已经做了优化,比手动写拒绝采样效率更高,尤其是当n和Z数值接近的时候。
内容的提问来源于stack exchange,提问作者24n8
相关产品推荐
相关产品推荐

