An elegant way to return random float between two numbers:
<?php
function random_float ($min,$max) {
return ($min+lcg_value()*(abs($max-$min)));
}
?>
(PHP 4, PHP 5, PHP 7, PHP 8)
lcg_value — Générateur de congruence combinée linéaire
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)
).
Cette fonction ne génère pas de valeurs sécurisées d'un point de vue cryptographique, et ne doit pas être utilisée dans un contexte de chiffrement. Si vous avez besoin d'une valeur sécurisée d'un point de vue cryptographique, utilisez plutôt random_int(), random_bytes(), ou openssl_random_pseudo_bytes().
Cette fonction ne contient aucun paramètre.
Une valeur pseudo aléatoire, dans l'intervalle de 0.0 à 1.0 inclus.
An elegant way to return random float between two numbers:
<?php
function random_float ($min,$max) {
return ($min+lcg_value()*(abs($max-$min)));
}
?>
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);
}?>