lcg_value

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

lcg_valueKongruenzgenerator für Pseudozufallszahlen

Beschreibung

lcg_value(): float

lcg_value() gibt eine Pseudozufallszahl zwischen Null und Eins (inklusive) zurück. Die Funktion kombiniert zwei gemischte kongruente Kongruenzgeneratoren mit den Perioden 2^31 - 85 und 2^31 - 249. Die Periode der von dieser Funktion generierten Pseudozufallsfolge entspricht dem Produkt dieser beiden Primzahlen.

Achtung

Diese Funktion erzeugt keine kryptografisch sicheren Werte und darf nicht für kryptografische Zwecke verwendet werden oder für Zwecke, bei denen die zurückgegebenen Werte nicht abschätzbar sein dürfen.

Falls kryptographisch sichere Zufallszahlen benötigt werden, kann der Random\Randomizer mit der Random\Engine\Secure-Engine verwendet werden. Für einfache Anwendungsfälle bieten die Funktionen random_int() und random_bytes() eine bequeme und sichere API, die durch den CSPRNG des Betriebssystems unterstützt wird.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Eine Pseudozufallszahl zwischen 0.0 und 1.0 (inklusive) als float.

Siehe auch

  • rand() - Erzeugt eine zufällige Zahl
  • mt_rand() - Erzeugt eine Zufallszahl nach dem Mersenne-Twister-Verfahren

add a note add a note

User Contributed Notes 3 notes

up
14
rok kralj gmail com
15 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
12 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
-23
Linndows
6 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