lcg_value

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

lcg_valueGenerador de congruencia lineal combinada

Advertencia

Esta función ha sido declarada OBSOLETA a partir de PHP 8.4.0. Su uso está totalmente desaconsejado.

Descripción

#[\Deprecated]
lcg_value(): float

lcg_value() devuelve un número pseudoaleatorio, comprendido entre 0 y 1. lcg_value() combina dos generadores de congruencia, con períodos respectivos de 2^31 - 85 y 2^31 - 249. El período de esta función es el producto de estos dos números primos (es decir, (2^31 - 85)*(2^31 - 249)).

Precaución

Esta función no genera valores criptográficamente seguros y no debe ser utilizada para fines criptográficos o fines que requieran que los valores devueltos sean impredecibles.

Si se requiere aleatoriedad criptográficamente segura, se puede utilizar el Random\Randomizer con el motor Random\Engine\Secure. Para casos de uso simples, las funciones random_int() y random_bytes() proporcionan una API conveniente y segura respaldada por el CSPRNG del sistema operativo.

Precaución

Escalar el valor de retorno a un intervalo diferente utilizando la multiplicación o la adición (una transformación afín) puede provocar un sesgo en el valor resultante, ya que los números de punto flotante no están distribuidos uniformemente en la línea numérica. Como no todos los valores pueden ser representados exactamente por un número de punto flotante, el resultado de la transformación afín también puede dar valores fuera del intervalo solicitado.

Utilice Random\Randomizer::getFloat() para generar un número de punto flotante aleatorio en un intervalo arbitrario. Utilice Random\Randomizer::getInt() para generar un entero aleatorio en un intervalo arbitrario.

Parámetros

Esta función no tiene parámetros.

Valores devueltos

Un valor pseudoaleatorio, en el intervalo de 0.0 a 1.0 inclusive.

Historial de cambios

Versión Descripción
8.4.0 Esta función ha sido deprecada.

Ver también

add a note

User Contributed Notes 2 notes

up
16
daniel dot baulig at gmx dot de
15 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
17 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)));
}
?>
To Top