有概率的随机数

Random number with probability

我正在尝试生成一个随机数,并且有 x% 的概率接近最大值。

问题是我不知道该怎么做,除非我采取一些步骤?

假设我将生成一个介于 1 和 3000 之间的随机数。

$number = mt_rand(1, 3000)

这将 return 2700 例如。我希望它比 3000 更接近 1。

我应该如何实现一个只有 10% 的机会接近 3000 的功能?

根据对问题的评论,您可以使用 mt_rand 函数两次。首先 - 检查它是否应该是 90%(其中值是随机的 1-100),如果不是 - 它是另一个 10%,其中值是随机的 1-3000:

$number = mt_rand(0, 9) == 0 ? mt_rand(1, 3000) : mt_rand(1, 100);