変化し続ける動的確率に基づいて数値を生成する乱数ジェネレーターを作成しようとしています。基本的にその機能は、ページからインデックスページに最も閲覧された投稿を選択して表示することです。したがって、最も閲覧されているページにはカウンターがあります。インデックスページで、このカウンターを取得し、確率として機能するカウンターに基づいて乱数を生成したいと考えています。カウンターが高いほどチャンスです。これまでの私の関数は次のようになっていますが、PHP に組み込み関数があるかどうか、またはこれをより効率的にする方法を知りたいです。
private function randomWithProbability($chance, $num, $range = false)
{
/* first generate a number from 1 to 100 and see if that number is in the range of chance */
$rand = mt_rand(1, 100);
if ($rand <= $chance)
{
/* the number should be returned */
return $num;
}
else
{
/* otherwise return a random number */
if ($range !== false)
{
/* make sure that this number is not same as the number for which we specified the chance */
$rand = mt_rand(0, $range-1);
while ($rand == $num)
{
$rand = mt_rand(0, $range-1);
}
return $rand;
}
}
}
$range は、チャンスに該当しない数値を生成するための通常の範囲です。
ご協力ありがとうございました。