lcg_value

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

lcg_value — GĂ©nĂ©rateur de congruence combinĂ©e linĂ©aire

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.4.0. Dépendre de cette fonction est fortement déconseillé.

Description

#[\Deprecated]
function lcg_value(): float

lcg_value() retourne un nombre pseudo alé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 cryptographiquement sĂ»res, et ne doit pas ĂȘtre utilisĂ©e Ă  des fins cryptographiques, ou Ă  des fins qui exigent que les valeurs renvoyĂ©es soient indĂ©chiffrables.

Si de l'alĂ©atoire cryptographiquement sĂ»re est requis, le Random\Randomizer peut ĂȘtre utilisĂ© avec le moteur Random\Engine\Secure. Pour des cas d'usage simple, les fonctions random_int() et random_bytes() fournissent une API pratique et sĂ»re qui est qui est soutenu par le CSPRNG du systĂšme d'exploitation.

Attention

Mettre Ă  l'Ă©chelle la valeur de retour vers un intervalle diffĂ©rent en utilisant la multiplication ou l'addition (une transformation affine) peut entraĂźner un biais dans la valeur rĂ©sultante car les nombres flottants ne sont pas Ă©galement rĂ©partis sur la ligne des nombres. Comme toutes les valeurs ne peuvent pas ĂȘtre exactement reprĂ©sentĂ©es par un nombre flottant, le rĂ©sultat de la transformation affine peut Ă©galement donner des valeurs en dehors de l'intervalle demandĂ©.

Utiliser Random\Randomizer::getFloat() pour générer un nombre flottant aléatoire dans un intervalle arbitraire. Utiliser Random\Randomizer::getInt() pour générer un entier aléatoire dans un intervalle arbitraire.

Liste de paramĂštres

Cette fonction ne contient aucun paramĂštre.

Valeurs de retour

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

Historique

Version Description
8.4.0 Cette fonction a été dépréciée.

Voir aussi

add a note

User Contributed Notes 2 notes

up
16
daniel dot baulig at gmx dot de ¶
16 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
16
rok kralj gmail com ¶
19 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)));
}
?>