乱数を生成する関数を探しています[a,b]
関数は 1 つの引数を取る必要があります - シードと戻り値はランダムx є [a,b]
です。の確率x = a
は最も低いですが、b に移動すると増加します。の確率がx = b
最も高くなるはずです。
私が探しているのは累積分布関数の実装であると理解していますが、確かなことは言えません。だから私は直接文学を喜んでいます。それとも、インボックスの php 実装が既にあるのでしょうか?
ありがとう
まず第一に、引数がどうあるべきかを指定していません。以下の関数は累積分布を使用しません。$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;
}