Рубрики
Uncategorized

Как генерировать случайные числа в PHP

Автор оригинала: David Wong.

Первый метод использует Mt_ rand()

function GetRandStr($length){
$str='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$len=strlen($str)-1;
$randstr='';
for($i=0;$i<$length;$i++){
$num=mt_rand(0,$len);
$randstr .= $str[$num];
}
return $randstr;
}
$number=GetRandStr(6);
echo $number;

Второй способ (самый быстрый)

function make_password( $length = 8 )
{
 //Password character set, you can add any character you need
 $chars = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 
 'i', 'j', 'k', 'l','m', 'n', 'o', 'p', 'q', 'r', 's', 
 't', 'u', 'v', 'w', 'x', 'y','z', 'A', 'B', 'C', 'D', 
 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L','M', 'N', 'O', 
 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y','Z', 
 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '!', 
 '@','#', '$', '%', '^', '&', '*', '(', ')', '-', '_', 
 '[', ']', '{', '}', '<', '>', '~', '`', '+', '=', ',', 
 '.', ';', ':', '/', '?', '|');
 //Randomly take $length array element key names in $chars
 $keys = array_rand($chars, $length); 
 $password = '';
 for($i = 0; $i < $length; $i++)
 {
 //Concatenate $length array elements into a string
 $password .= $chars[$keys[$i]];
 }
 return $password;
}

Третий метод использует отметку времени

function get_password( $length = 8 ) 
{
 $STR = substr (MD5 (time()), 0, $length); // MD5 encryption, time() current timestamp
 return $str;
}

Четвертое-это скремблирование строк

function getrandstr(){
$str='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
$randStr = str_ Shuffle ($STR); // scramble strings
$Rand = substr ($randstr, 0,6); // substr (string, start, length); returns a part of the string
return $rands;
}

В-пятых, начните создавать проверочный код (непосредственно генерируемый функцией, более удобный и быстрый).

$code = rand(10000, 99999);

php mt_ Случайный эффект случайной генерации 0 ~ 1 десятичных знаков

описание значения lcg_

значение с плавающей запятой lcg_value ( void ) значение lcg_value() Возвращает псевдо- случайное число в диапазоне (0, 1). Эта функция объединяет два генератора конгруэнтности с периодами 2 ^ 31 – 85 и 2 ^ 31 – 249. Период этой функции равен произведению этих двух простых чисел.

Возвращает: псевдослучайное число в диапазоне (0, 1).

Выход:

0.11516515851995 0.064684551575297 0.68275174031189 0.55730746529099 0.70215008878091

Было проведено сравнение двух методов генерации 0 ~ 1 случайных десятичных знаков

1. Сравнение времени выполнения

На основе 100000 выполнения mt_rand() И mt_getrandmax() Время выполнения алгоритма

Выход:

время выполнения 266,893148 мс

100000 раз Значение lcg_ () Время выполнения

Выход:

время выполнения 86.178064 мс

Сравнение времени выполнения, потому что lcg_value() Это собственный метод PHP, и mt_rand() И mt_getrandmax() Необходимо вызвать и оценить два метода, поэтому lcg_value() Время выполнения примерно в три раза быстрее.

2. Сравнение случайных эффектов

быть основано на mt_rand() И mt_getrandmax() Случайный эффект алгоритма

=0.5){
  imagesetpixel($im, $x, $y, $color1);
 }else{
  imagesetpixel($im, $x, $y, $color2);
 }
 }
}
imagepng($im);
imagedestroy($im);
?>

lcg_value() Случайный эффект

=0.5){
  imagesetpixel($im, $x, $y, $color1);
 }else{
  imagesetpixel($im, $x, $y, $color2);
 }
 }
}
imagepng($im);
imagedestroy($im);
?>

3. Рекомендация по случайному чтению

+PHP шифрует исходный код https://www.jb51.net/article/134506.html

Выше описано, как генерировать случайные числа в PHP подробно, более подробную информацию о случайных числах PHP, пожалуйста, обратите внимание на другие соответствующие статьи в developeppaer!