PHP实现自定义数字分发

时间:2012-12-11 18:57:25

标签: php math

我正在寻找一个在[a,b]

中生成随机数的函数

函数必须接受一个参数 - seed并返回随机x є [a,b]x = a的概率最低,但在转移到b时增加。 x = b的概率应该是最高的。

据我所知,我正在寻找的是累积分配函数的实现,但不能肯定地说。所以我会对直接文学感到高兴。或者可能已经有一个内置的PHP实现?

由于

1 个答案:

答案 0 :(得分:1)

首先,您没有指定参数应该是什么。 以下功能不使用推理分发。过量使用$ n会导致接近b的值更有可能被返回。

function almostRandom() {
    $a = 1;
    $b = 10;
    $n = 2.5;

    $random = rand(0, 1000000) / 1000000;

    $positionInInterval = 1 - pow($random, $n);

    $intervalLength = $b - $a;
    $value = $a + $intervalLength * $positionInInterval;

    return $value;
}