ConFoo Montreal 2017 Calling for Papers

lcg_value

(PHP 4, PHP 5, PHP 7)

lcg_valueCombined linear congruential generator

Descrierea

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.

Precauţie

Această funcție nu generează valori securizate din punct de vedere criptografic și deci nu trebuie utilizată pentru scopuri criptografice. Dacă aveți nevoie de o valoare securizată din punct de vedere criptografic considerați utilizarea random_int(), random_bytes() sau openssl_random_pseudo_bytes() în schimb.

Valorile întoarse

A pseudo random float value in the range of (0, 1)

A se vedea și

  • rand() - Generate a random integer
  • mt_rand() - Generate a better random value

add a note add a note

User Contributed Notes 3 notes

up
6
rok kralj gmail com
9 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)));
}
?>
up
6
daniel dot baulig at gmx dot de
6 years ago
Choose your weapon:
<?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);
}
?>
up
0
Linndows
18 days 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";
?>
To Top