PHP 7.1.19 Released

# lcg_value

(PHP 4, PHP 5, PHP 7)

lcg_valueCombined linear congruential generator

### Description

float lcg_value ( void )

lcg_value() returns a pseudo random number in the range of (0, 1). The function combines two CGs with periods of 2^31 - 85 and 2^31 - 249. The period of this function is equal to the product of both primes.

Caution

This function does not generate cryptographically secure values, and should not be used for cryptographic purposes. If you need a cryptographically secure value, consider using random_int(), random_bytes(), or openssl_random_pseudo_bytes() instead.

### Return Values

A pseudo random float value between 0.0 and 1.0, inclusive.

• rand() - Generate a random integer
• mt_rand() - Generate a random value via the Mersenne Twister Random Number Generator

### User Contributed Notes 3 notes

10
daniel dot baulig at gmx dot de
8 years ago
<?php
function mt_randf(\$min, \$max)
{
return
\$min + abs(\$max - \$min) * mt_rand(0, mt_getrandmax())/mt_getrandmax();
}
function
lcg_randf(\$min, \$max)
{
return
\$min + lcg_value() * abs(\$max - \$min);
}
function
randf(\$min, \$max)
{
return
\$min + rand(0,getrandmax()) / getrandmax() * abs(\$max - \$min);
}
?>
rok kralj gmail com
11 years ago
An elegant way to return random float between two numbers:

<?php
function random_float (\$min,\$max) {
return (
\$min+lcg_value()*(abs(\$max-\$min)));
}
?>
-9
Linndows
1 year ago
I think best example...
<?php
\$x
=0;
while(
\$x<=5){
\$x++;
echo
lcg_value()+\$x."\n";   }
echo
lcg_value()+\$x-(2*lcg_value()); echo "\n";
?>