如何从一大组数字中生成有偏差的随机数

Chu*_*lus 4 python random python-3.x

我想让 Python 3.7.1 选择一个 0 到 100 之间的数字。但是我希望较低的数字比较高的数字更有可能,以反向指数平滑分级曲线的方式(没有准确地说)。

我想我可以从

myrandomnumber = random.randint(0, 100)
Run Code Online (Sandbox Code Playgroud)

然后将其链接到某种数组以确定每个数字的不同百分比。我见过其他人用随机骰子来做到这一点,但问题是,这对于六种可能性来说是相当整洁的,我想对一百个(或更多)这样做,并且不想坐在那里做一个巨大的为此,有一百个条目的数组。当然,我想我可以这样做,但我觉得 Python 可能有一种非常简单的方法来做到这一点,而我却缺少这种方法。

谢谢各位!

Ian*_*oyd 5

您可能想要的是伽玛分布的随机数。

\n\n

例如,使用 ak=1\xce\xb8=2.0

\n\n

在此输入图像描述

\n\n

有一些算法可以使用均匀分布random函数来生成normalexponentialgamma分布值。

\n\n

但由于你使用的是 python,你可能可以直接跳到使用 numpy 的random.gamma函数:

\n\n
#the (1,2) shape ends basically at 20. Multiply by 5 to get my 0..100 scale\nnumpy.random.gamma(1, 2.0) * 5\n
Run Code Online (Sandbox Code Playgroud)\n