Start · Sprachen · PHP · Referenz · stats_rand_gen_funiform

stats_rand_gen_funiform

Funktion

Erzeugt eine gleichmäßig verteilte Zufalls-Fließkommazahl im offenen Intervall (<code>low</code>, <code>high</code>), d. h. beide Grenzen sind exklusiv.

Kategorie: math

Signatur

stats_rand_gen_funiform(float $low, float $high): float

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

Typ
float
Beschreibung
Gibt eine gleichmäßig verteilte Zufalls-Fließkommazahl aus dem offenen Intervall (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)
Zufallswert: 0.73241... (variiert je nach Durchlauf)

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)
Geschätztes π: 3.1412... (variiert je nach Durchlauf)

// 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.