【发布时间】:2014-07-07 04:08:29
【问题描述】:
我想生成两个数字之间具有特定大小范围的随机范围。首先我认为随机模块中可能有一些特定的功能可以做到这一点,但似乎没有这样的功能。
我写了以下代码,但是速度很慢。
import random
range_list=[]
n=0
while n<1000000:
first=random.randint(1,3000000000)
last=random.randint(1,3000000000)
if abs(last-first) <150 and abs(last-first)>100:
range_list.append([last,first])
else:
continue
n+=1
有什么快速的方法吗?
【问题讨论】:
-
产生两个介于 0 和 50 之间的随机数,将 (100 + 一个随机数) 添加到两者。没有?
-
将随机数加在一起并不总是一个好主意。您可能会破坏产生的随机性的“质量”。看看stackoverflow.com/a/3956538/525169,它很好地解释了这一点。也就是说,在这种特殊情况下,由于一个随机数的分布非常广泛,而另一个随机数的分布非常窄,卷积后的分布也可能非常平坦——如果这是预期的话。
标签: python-3.x random