Start · Sprachen · PHP · Referenz · stats_rand_gen_ipoisson

stats_rand_gen_ipoisson

Funktion

Erzeugt eine ganzzahlige Zufallszahl gemäß der Poisson-Verteilung mit dem angegebenen Erwartungswert <code>mu</code>.

Kategorie: math

Signatur

stats_rand_gen_ipoisson(float $mu): int

Beschreibung

Die Funktion stats_rand_gen_ipoisson() gehört zur PECL-Erweiterung stats und liefert eine zufällige ganzzahlige Stichprobe aus der Poisson-Verteilung. Der Parameter mu (auch λ genannt) gibt den Erwartungswert – also den durchschnittlichen Wert der Verteilung – an.

Die Poisson-Verteilung modelliert die Anzahl von Ereignissen, die in einem festen Zeitintervall auftreten, wenn diese Ereignisse unabhängig voneinander und mit konstanter Rate eintreten. Typische Anwendungsfälle sind Simulationen von Anrufvolumina in Call-Centern, Anzahl von Fehlern in einem Programmcode oder Trefferanzahl auf einer Webseite pro Minute.

Da es sich um eine diskrete Wahrscheinlichkeitsverteilung handelt, gibt die Funktion immer einen nicht-negativen ganzzahligen Wert zurück. Je größer mu, desto weiter streuen die erzeugten Zufallszahlen um den Erwartungswert.

Voraussetzung für die Nutzung dieser Funktion ist die Installation der PECL-Erweiterung stats (pecl install stats). Sie steht nicht im PHP-Standardumfang zur Verfügung.

Parameter

Name Typ Default Beschreibung
$mu Pflicht float Der Erwartungswert (λ) der Poisson-Verteilung. Muss ein positiver Wert sein (größer 0). Bestimmt den Mittelwert der erzeugten Zufallszahlen.

Rückgabewert

Typ
int
Beschreibung
Eine nicht-negative ganzzahlige Zufallszahl, die der Poisson-Verteilung mit dem angegebenen Erwartungswert mu folgt.

Beispiele

Einfache Zufallszahl aus der Poisson-Verteilung

<?php
// Erzeugt eine Zufallszahl aus der Poisson-Verteilung mit Erwartungswert 5
$mu = 5.0;
$zufallszahl = stats_rand_gen_ipoisson($mu);
echo "Poisson-Zufallszahl (mu=5): " . $zufallszahl . PHP_EOL;
Poisson-Zufallszahl (mu=5): 4

Simulation von Webseitenaufrufen pro Minute

<?php
// Simuliert die Anzahl von Webseitenaufrufen pro Minute
// Angenommener Erwartungswert: 12 Aufrufe pro Minute
$erwartungswert = 12.0;
$minuten = 10;
$gesamt = 0;

echo "Simulation von Webseitenaufrufen (Erwartungswert: $erwartungswert/min):" . PHP_EOL;
for ($i = 1; $i <= $minuten; $i++) {
    $aufrufe = stats_rand_gen_ipoisson($erwartungswert);
    $gesamt += $aufrufe;
    echo "Minute $i: $aufrufe Aufrufe" . PHP_EOL;
}

$durchschnitt = $gesamt / $minuten;
echo "Durchschnitt über $minuten Minuten: $durchschnitt Aufrufe/min" . PHP_EOL;
Simulation von Webseitenaufrufen (Erwartungswert: 12/min): Minute 1: 11 Aufrufe Minute 2: 14 Aufrufe Minute 3: 10 Aufrufe Minute 4: 13 Aufrufe Minute 5: 12 Aufrufe Minute 6: 9 Aufrufe Minute 7: 15 Aufrufe Minute 8: 11 Aufrufe Minute 9: 13 Aufrufe Minute 10: 12 Aufrufe Durchschnitt über 10 Minuten: 12 Aufrufe/min

// Wichtig · Fallstricke

PECL-Erweiterung erforderlich: Die Funktion stats_rand_gen_ipoisson() ist nicht Teil des PHP-Kerns. Sie erfordert die Installation der stats-PECL-Erweiterung. Auf vielen Produktivsystemen ist diese nicht standardmäßig verfügbar.

Gültigkeitsbereich von mu: Der Erwartungswert mu muss positiv sein (größer 0). Ein Wert von 0 oder ein negativer Wert kann zu undefiniertem Verhalten führen. Bei sehr großen Werten für mu können Laufzeitprobleme auftreten, da der interne Algorithmus aufwändiger wird.

Reproduzierbarkeit: Um reproduzierbare Ergebnisse zu erhalten, kann der Zufallszahlengenerator mit stats_rand_setall() initialisiert werden.