php[world] 2018 - Call for Speakers

lcg_value

(PHP 4, PHP 5, PHP 7)

lcg_valueGénérateur de congruence combinée linéaire

Description

float lcg_value ( void )

lcg_value() retourne un nombre pseudoaléatoire, compris entre 0 et 1. lcg_value() combine deux générateurs de congruence, de périodes respectives 2^31 - 85 et 2^31 - 249. La période de cette fonction est le produit de ces deux nombres premiers (soit (2^31 - 85)*(2^31 - 249)).

Attention

Cette fonction ne génère pas de valeurs sécurisées d'un point de vue cryptologie, et ne doit pas être utilisée dans un contexte de cryptologie. Si vous avez besoin d'un valeur sécurisée d'un point de vue cryptologique, utilisez plutôt random_int(), random_bytes(), ou openssl_random_pseudo_bytes().

Valeurs de retour

Une valeur pseudoaléatoire, dans l'intervalle de 0.0 à 1.0 inclus.

Voir aussi

  • rand() - Génère une valeur aléatoire
  • mt_rand() - Génère une valeur aléatoire via le générateur de nombre aléatoire Mersenne Twister

add a note add a note

User Contributed Notes 3 notes

up
10
daniel dot baulig at gmx dot de
8 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
6
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)));
}
?>
up
-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";
?>
To Top