Start · Sprachen · PHP · Referenz · stats_rand_gen_exponential

stats_rand_gen_exponential

Funktion

Erzeugt eine zufällige Gleitkommazahl, die der Exponentialverteilung mit dem angegebenen Erwartungswert folgt.

Kategorie: math

Signatur

stats_rand_gen_exponential(float $av): float

Beschreibung

stats_rand_gen_exponential() ist Teil der PECL stats-Erweiterung und gibt eine pseudozufällige Zahl zurück, die gemäß der Exponentialverteilung mit dem Mittelwert (Erwartungswert) av verteilt ist. Die Exponentialverteilung beschreibt häufig Wartezeiten zwischen unabhängigen Ereignissen, die mit konstanter Rate eintreten (z. B. Ankunftszeiten in Warteschlangensystemen).

Der Parameter av entspricht dem Kehrwert der Rate λ (also av = 1/λ). Ein kleinerer Wert bedeutet, dass die erzeugten Zufallszahlen im Durchschnitt kleiner sind, d. h. die Ereignisse häufiger auftreten.

Die Funktion eignet sich vor allem für Simulationen, statistische Tests und stochastische Modellierungen, bei denen exponentiell verteilte Zufallsvariablen benötigt werden. Sie setzt voraus, dass die PECL-Erweiterung stats installiert und aktiviert ist.

Da alle Ausgabewerte nicht-negativ sind und der theoretische Wertebereich [0, ∞) umfasst, ist die Funktion nicht für Anwendungsfälle geeignet, bei denen negative Zufallszahlen erwartet werden.

Parameter

Name Typ Default Beschreibung
$av Pflicht float Der Erwartungswert (Mittelwert) der Exponentialverteilung. Muss positiv sein (av > 0). Entspricht 1/λ, wobei λ die Rate der Verteilung ist.

Rückgabewert

Typ
float
Beschreibung
Eine pseudozufällige Gleitkommazahl, die der Exponentialverteilung mit Erwartungswert av folgt. Der Rückgabewert liegt im Bereich [0, ∞).

Beispiele

Einzelne exponentialverteilte Zufallszahl erzeugen

<?php
// Erwartet PECL-Erweiterung 'stats'
// Erzeugt eine Zufallszahl mit Erwartungswert 2.0
$av = 2.0;
$zufallszahl = stats_rand_gen_exponential($av);
echo "Zufallszahl (Exp-Verteilung, av={$av}): " . $zufallszahl . PHP_EOL;
?>
Zufallszahl (Exp-Verteilung, av=2.0): 1.3748291...

Empirischen Mittelwert durch wiederholte Ziehung schätzen

<?php
// Erwartet PECL-Erweiterung 'stats'
// Prüft, ob der empirische Mittelwert gegen av konvergiert
$av = 5.0;
$n = 100000;
$summe = 0.0;

for ($i = 0; $i < $n; $i++) {
    $summe += stats_rand_gen_exponential($av);
}

$empirischerMittelwert = $summe / $n;
echo "Erwarteter Mittelwert:   {$av}" . PHP_EOL;
echo "Empirischer Mittelwert: " . round($empirischerMittelwert, 4) . PHP_EOL;
?>
Erwarteter Mittelwert: 5 Empirischer Mittelwert: 4.9987

// Wichtig · Fallstricke

Voraussetzung: Die Funktion ist nicht im PHP-Kern enthalten, sondern Teil der PECL-Erweiterung stats. Ohne diese Erweiterung führt ein Aufruf zu einem schwerwiegenden Fehler (Fatal Error).

Ungültige Parameter: Der Parameter av muss positiv sein. Ein Wert von 0 oder negativ ist mathematisch nicht definiert und kann zu unerwarteten Ergebnissen oder Fehlern führen.

Reproduzierbarkeit: Da die Funktion auf dem internen Zufallszahlengenerator der stats-Erweiterung basiert, kann die Sequenz über stats_rand_setall() initialisiert werden, um reproduzierbare Ergebnisse zu erhalten.