在python中随机选择特定范围内具有特定倍数的数字

时间:2011-09-14 17:50:19

标签: python random

我有以下数字:

100,200,300,400 ... 20000

我想在该范围内选择一个随机数。同样,该范围定义为100:100:20000。此外,通过说“在该范围内”,我并不是指从100-> 20000中随机选择一个数字,例如105.我的意思是从可用数字列表中随机选择一个数字,该列表定义为100 :100:20000。

我将如何在Python中执行此操作?

4 个答案:

答案 0 :(得分:15)

使用random.randrange

random.randrange(100, 20001, 100)

答案 1 :(得分:6)

对于Python 3:

import random

random.choice(range(100, 20100, 100))

答案 2 :(得分:2)

来自python手册:

  

random.randrange([start], stop[, step])

     

从范围(开始,停止,步骤)返回随机选择的元素。这个   相当于选择(范围(开始,停止,步)),但不是   实际上构建了一个范围对象。

答案 3 :(得分:1)

这样做

print random.choice(xrange(100, 20100, 100);

但这可能更好:

print int(round(random.randint(100, 200001),-2))

@ mouad的回答对我来说是最好的。

修改
出于好奇,我尝试了这个答案与random.randint(1, 2001) * 100的基准测试,结果却完全相同。 1M次迭代的差异大约是1 - 2百分之一秒。