【问题标题】:Generate random numbers with a numerical distribution in given intervals生成在给定区间内具有数值分布的随机数
【发布时间】:2021-02-27 14:15:53
【问题描述】:
我有一个可以在给定间隔内生成随机数的文件
random.randint(0,30)
我想为某些区间分配一个分布,例如
0-9 发生的几率为 50%,10-19 发生的几率为 30%,20-29 的发生几率为 20%。
【问题讨论】:
标签:
python
python-3.x
python-2.7
random
【解决方案1】:
以下将完成这项工作。它首先生成一个均匀分布的随机数以确定哪个区间,然后在该区间生成一个均匀分布的整数。
import numpy as np
interval = np.random.rand()
if interval < 0.5:
final = np.random.randint(0, 10)
elif interval < 0.8:
final = np.random.randint(10, 20)
else:
final = np.random.randint(20, 30)