PHP 8.3.4 Released!

lcg_value

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

lcg_valueCombined linear congruential generator

Açıklama

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.

Dikkat

Bu işlev kriptografik olarak güvenilir değerler üretmez ve kriptografik amaçlarla veya döndürülen değerlerin tahmin edilemez olmasını gerektiren amaçlarla kullanılmamalıdır.

Kriptografik olarak güvenilir rastgelelik gerekliyse Random\Randomizer sınıfı Random\Engine\Secure motoru ile kullanılabilir. Basit kullanım durumlarında random_int() ve random_bytes() işlevleri, işletim sisteminin CSPRNG’i tarafından desteklenen kullanışlı ve güvenli bir arayüz sağlar.

Dikkat

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.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

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

Ayrıca Bakınız

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