Какое минимальное значение допустимо для mt_rand()
? Это то же самое значение для 32-битных и 64-битных машин? Как я могу сгенерировать 32-битное целое число, используя mt_rand()
(обратите внимание, что он не должен быть слишком случайным)?
СПРАВОЧНАЯ ИНФОРМАЦИЯ ПОЧЕМУ Я ПРОСИЛ: Я имею 64-битный физический сервер разработки и 32-разрядный VPS. Просто понял, что производственный сервер не генерирует ПК, охватывающих весь диапазон. Чтобы выяснить, что происходит, я выполнил следующий сценарий. 64-битная машина никогда (или, по крайней мере, я никогда не была свидетелем), но 32 бит соответствует примерно 50% времени.
<?php date_default_timezone_set('America/Los_Angeles'); ini_set('display_errors', 1); error_reporting(E_ALL); $count=0; for ($i = 0; $i <= 10000; $i++) { $rand=2147483648+mt_rand(-2147483647,2147483647); //Spans 1 to 4294967295 where 0 is reserved if($rand==2147483649){$count++;} } echo('mt_getrandmax()='.mt_getrandmax().' count='.$count);
вывод
mt_getrandmax()=2147483647 count=5034