Home  >  Article  >  Backend Development  >  In-depth understanding of random numbers based on PHP_PHP tutorial

In-depth understanding of random numbers based on PHP_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:09:151304browse

php mt_srand seeds a better random number generator
mt_srand
(PHP 3 >= 3.0.6, PHP 4, PHP 5)
mt_srand -- Sow a better random number generator seed
Instructions

Copy code The code is as follows:

void mt_srand ( int seed )

Use seed to seed the random number generator. Starting from PHP version 4.2.0, the seed parameter becomes optional, and when it is empty, it will be set to a constant.
Example 1. mt_srand() example
Copy code The code is as follows:

Code highlighting produced by Actipro CodeHighlighter (freeware )http://www.CodeHighlighter.com/-->// seed with microseconds
function make_seed()
{
list($usec, $sec) = explode(' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
mt_srand(make_seed());
$randval = mt_rand();
?>

Note: Since PHP 4.2.0, it is no longer necessary to use the srand() or mt_srand() function to Random number generator seeding is now done automatically.
See mt_rand(), mt_getrandmax() and srand().

PHP mt_rand() function
Definition and usage
mt_rand() using Mersenne Twister The algorithm returns a random integer.
Syntax
Copy code The code is as follows:

mt_rand(min,max)

Explanation
If the optional parameters min and max are not provided, mt_rand() returns a pseudo-random number between 0 and RAND_MAX. For example, if you want a random number between 5 and 15 (inclusive), use mt_rand(5, 15).
Many old libc random number generators have some uncertain and unknown characteristics and are slow. PHP's rand() function uses the libc random number generator by default. The mt_rand() function is informally used to replace it. This function uses the known features of Mersenne Twister as a random number generator, which can generate random values ​​on average four times faster than rand() provided by libc.
Tips and Notes
Note: As of PHP 4.2.0, it is no longer necessary to seed the random number generator with the srand() or mt_srand() function, now Completed automatically.
Note: In versions before 3.0.7, max means range. To get the same random numbers from 5 to 15 as in the above example in these versions, the short example is mt_rand (5, 11).
Example
In this example, we will return some random numbers:
Copy the code The code is as follows:

echo(mt_rand());
echo(mt_rand(10,100));
?>

The output is similar:
3150906288
513289678
35
Note: The random integer given by the above function, characters other than numbers are It will not come out. If you want to generate other characters, you need to customize the method as follows:
Copy the code The code is as follows:

/*
* $length: The length of the random number string
* $type: The type of random number generated
* */
function random( $length, $type = "") {
$chars = !$type ? "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz" : "0123456789abcdef";
$max = strlen($chars) - 1;
mt_srand((double) microtime() * 1000000);
for($i = 0; $i < $length; $i++) {
$string .= $chars[mt_rand(0, $max)];
}
return $string;
}
$var=random(32,'haha');
echo($var);
?>

Output:
fe61e294e5f46437cb3a92b92643ead6

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/327348.htmlTechArticlephp mt_srand Seeds a better random number generator mt_srand (PHP 3 = 3.0.6, PHP 4 , PHP 5) mt_srand -- Seed a better random number generator Instructions Copy Code Code...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn