Привет, я нашел этот скрипт.PHP - этот скрипт является хорошим решением для случайных чисел?
Сценарий:
function urandom_rand($min = 0, $max = 0x7FFFFFFF){
$min = (int)$min;
$max = (int)$max;
if ($max <= $min)
trigger_error('Minimum value must be greater than maximum value.');
if ($min < 0 || $max > 0x7FFFFFFF)
trigger_error('Values must be between 0 and 2147483647.');
$M = bcadd(0x7FFFFFFF,1); // (up bound of iv)+1
$N = bcadd($max-$min, 1); // how many different values this function can return
$h = bcmod($M, $N); // the last h integers from unpack are "invalids"
do{
$bytes = mcrypt_create_iv(4, MCRYPT_DEV_URANDOM);
$r = unpack("N", $bytes)[1] & 0x7FFFFFFF;
} while ($r > ($M-$h));
return (bcmod($r, $N) + $min);
}
Мой вопрос: Является ли этот сценарий является хорошим решением для генерации случайных чисел?
Хорошо? Определите хорошее. – j08691
Что случилось с ['mt_rand()'] (http://php.net/manual/en/function.mt-rand.php) или даже ['rand()'] (http://php.net/ ручной/EN/function.rand.php)? – axiac
http://php.net/manual/en/function.random-int.php – Sammitch