Signatur
Beschreibung
stats_rand_gen_funiform() ist Teil der PECL-Erweiterung stats und gibt eine pseudozufällige Fließkommazahl zurück, die gleichmäßig (uniform) zwischen den beiden angegebenen Grenzen low und high verteilt ist. Beide Grenzen selbst sind dabei ausgeschlossen (offenes Intervall).
Die Funktion eignet sich überall dort, wo kontinuierliche Zufallswerte in einem definierten Wertebereich benötigt werden, beispielsweise für Monte-Carlo-Simulationen, statistische Stichproben oder Wahrscheinlichkeitsberechnungen. Im Gegensatz zu lcg_value() oder mt_rand() liefert sie ein echtes Fließkommaresultat in einem frei wählbaren Intervall.
Da die Funktion zur PECL-Erweiterung stats gehört, muss diese installiert und aktiviert sein. Die Erweiterung basiert auf dem RANLIB-Algorithmus und liefert statistisch hochwertige Pseudozufallszahlen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $low Pflicht | float | Untere Grenze des Intervalls (exklusiv). Der zurückgegebene Wert ist stets größer als low. |
|
| $high Pflicht | float | Obere Grenze des Intervalls (exklusiv). Der zurückgegebene Wert ist stets kleiner als high. Muss größer als low sein. |
Rückgabewert
low, high) zurück.Beispiele
Einfache Zufallszahl im Intervall (0.0, 1.0)
<?php
// Erzeugt eine zufällige Fließkommazahl strikt zwischen 0 und 1
$value = stats_rand_gen_funiform(0.0, 1.0);
echo 'Zufallswert: ' . $value . PHP_EOL;
// Ausgabe: Zufallswert: 0.73241... (variiert)
Monte-Carlo-Simulation zur Schätzung von π
<?php
// Näherungsweise Bestimmung von Pi mittels Monte-Carlo-Methode
$iterations = 100000;
$inside = 0;
for ($i = 0; $i < $iterations; $i++) {
$x = stats_rand_gen_funiform(-1.0, 1.0);
$y = stats_rand_gen_funiform(-1.0, 1.0);
if (($x * $x + $y * $y) < 1.0) {
$inside++;
}
}
$pi_estimate = 4.0 * $inside / $iterations;
echo 'Geschätztes π: ' . $pi_estimate . PHP_EOL;
// Ausgabe: Geschätztes π: 3.1412... (variiert, annähernd 3.14159)
// Wichtig · Fallstricke
Achtung: Die Funktion gehört zur PECL-Erweiterung stats, die nicht standardmäßig in PHP enthalten ist. Vor der Verwendung muss sichergestellt sein, dass die Erweiterung über PECL installiert und in der php.ini aktiviert wurde.
Das Intervall ist offen — die Werte low und high selbst werden niemals zurückgegeben. Wird low >= high übergeben, ist das Verhalten undefiniert und kann zu unerwarteten Ergebnissen führen. Für kryptografisch sichere Zufallszahlen ist random_int() bzw. random_bytes() zu bevorzugen.