PHP 8.3.4 Released!

lcg_value

(PHP 4, PHP 5, PHP 7, PHP 8)

lcg_valueCombined linear congruential generator

Descrição

lcg_value(): float

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.

Cuidado

Esta função não gera valores criptograficamente seguros e não deve ser usada para propósitos criptográficos ou fins que exijam que os valores retornados sejam impossíveis de adivinhar.

Se aleatoriedade criptograficamente segura for necessária, a classe Random\Randomizer pode ser usada com o mecanismo Random\Engine\Secure. Para casos de uso simples, as funções random_int() e random_bytes() fornecem uma API conveniente e segura que é garantida pelo CSPRNG do sistema operacional.

Cuidado

Scaling the return value to a different interval using multiplication or addition (a so-called affine transformation) might result in a bias in the resulting value as floats are not equally dense across the number line. As not all values can be exactly represented by a float, the result of the affine transformation might also result in values outside of the requested interval.

Use Random\Randomizer::getFloat() to generate a random float within an arbitrary interval. Use Random\Randomizer::getInt() to generate a random integer within an arbitrary interval.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

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

Veja Também

add a note

User Contributed Notes 3 notes

up
16
rok kralj gmail com
16 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
15
daniel dot baulig at gmx dot de
14 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
-36
Linndows
7 years 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