【发布时间】:2020-02-26 12:09:04
【问题描述】:
我想生成一个随机数 193 次,但设置一个种子,以便以后可以为每个实例获取相同的数字。因为,我找不到设置种子 X 次的函数,所以我写了以下代码:
rand_list_raw = []
val_length = int(len(all_articles)*0.15)
seeds = list(range(0,val_length))
index = 0
while len(rand_list_raw) < val_length:
seed = seeds[index]
random.seed(seed)
rand_num = random.randrange(0, 1290, 1)
rand_list_raw.append(rand_num)
index += 1
检查rand_list_raw 中唯一变量的长度,我得出结论random.seed() 具有多对一映射,因此具有不同数字的随机种子的多个实例可能会导致相同的结果。这实际上是有道理的,因为输入变量的范围是无限的,而输出变量的范围是有限的。
len(set(rand_list_raw))
有没有办法保证不同的数字(除了硬编码)?
附言。我知道我也可以在该范围内创建一个包含唯一随机数的列表并将其导出。但这不是重点。
【问题讨论】:
-
除了“那不是重点”之外,你的“Ps”中的解决方案有什么问题?
标签: python python-3.x random