不均匀/不均匀分布的随机浮点数

时间:2019-12-11 15:42:06

标签: math random statistics distribution

如何在X和Y之间生成不均匀分布的随机浮点数,以便更有可能生成X到Y范围内特定范围内的数字?

我确实搜索了很多关键字来查找类似这样的内容,包括:不均匀分布的随机数,不均匀的噪声分布,有偏差的随机浮点数或加权随机数...

我能找到的是从一袋有限的值列表中随机选择,这些值经过加权,以便更有可能选择某些值,但我希望从X和Y之间的无限范围的浮点数中进行选择。

我也找到了很多有关如何不生成有偏随机数的文章,这与我想要的相反。

作为我要处理这些数字的一个示例:如果在白色正方形中绘制黑色噪声,则每个噪声点都位于正方形内的随机位置,如果生成足够的点,您将拥有一个几乎是黑色的正方形。

如果您以较高的概率将随机性分布在正方形的中间,则将在正方形的中间绘制一个几乎柔软的黑点。这就是我要生成的。

所以我的问题是:

  • 我确定这些算法存在,如何称呼它们?
  • 也许有人可以用任何语言建议快速实施吗?
  • 如何指定偏差的权重?例如:生成特定范围内的数字的可能性要高2倍或5倍?以我的点为例,我相信,如果将某个范围内的数字获得数字的可能性提高了5倍,则该点将变得更小,更暗。
  • 如何指定分布的柔和度?例如:线性,longaritmic,二次方。以我的点为例,我相信它将使点变得更软或更硬。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

这些通常称为连续分布,以下是定义这种分布的两种方法。

对于许多流行的分布,例如正态分布,β和gamma分布,有一些特殊的方法可以使用这些分布生成随机数。实际上,用于正态分布的这种方法有许多不同的设计。对于有界范围内的数字,beta distribution是理想的选择。它的两个参数( alpha beta )描述了各种各样的形状,可以满足您的目的。 Python有一个random.betavariate(alpha, beta)方法来生成Beta分布的随机数。