根据特定分布生成随机数

时间:2014-12-12 20:06:55

标签: python random

如何生成0到1之间的随机数,根据分布20%,80%即

for i in range(0, 10):
    print random.randint(0, 1)

>>> 1 1 0 1 0 1 1 1 1 1
  • 20%0s
  • 80%1s

2 个答案:

答案 0 :(得分:3)

利用布尔也是整数的事实; True为1,False为0;以下内容产生1 80%的时间,否则0

int(random.random() < 0.8)

演示:

>>> import random
>>> from collections import Counter
>>> Counter(int(random.random() < 0.8) for _ in range(1000))
Counter({1: 798, 0: 202})

答案 1 :(得分:2)

处理它的一种方法:

>>>import random
>>>random.choice(2*[0]+8*[1])

详细说明,这将从包含2个零和8个的列表中随机选择。