Start · Sprachen · PHP · Referenz · stats_rand_gen_ibinomial_negative

stats_rand_gen_ibinomial_negative

Funktion

Erzeugt eine ganzzahlige Zufallszahl gemäß der negativen Binomialverteilung mit den Parametern <code>n</code> (Anzahl Erfolge) und <code>p</code> (Erfolgswahrscheinlichkeit).

Kategorie: math

Signatur

stats_rand_gen_ibinomial_negative(int $n, float $p): int

Beschreibung

Die Funktion stats_rand_gen_ibinomial_negative() ist Teil der stats-Erweiterung für PHP und erzeugt eine zufällige ganzzahlige Stichprobe aus der negativen Binomialverteilung (auch Pascal-Verteilung genannt). Diese Verteilung beschreibt die Anzahl der Misserfolge, die auftreten, bevor eine bestimmte Anzahl von Erfolgen n in einer Folge unabhängiger Bernoulli-Experimente mit der Erfolgswahrscheinlichkeit p erzielt wird.

Typische Anwendungsfälle sind Simulationen von Wartezeiten, Qualitätskontrolle (wie viele fehlerhafte Teile treten auf, bevor eine bestimmte Anzahl fehlerfreier Teile produziert wird) oder Modellierungen in der Epidemiologie und Versicherungsmathematik, wo Überstreuung gegenüber der Poisson-Verteilung berücksichtigt werden muss.

Der Parameter n gibt die gewünschte Anzahl an Erfolgen an, während p die Wahrscheinlichkeit eines einzelnen Erfolgs pro Versuch definiert. Die Funktion ist in der RANDLIB-Bibliothek implementiert und setzt eine korrekt installierte PHP-stats-Erweiterung voraus.

  • n muss eine positive ganze Zahl sein (n >= 1).
  • p muss im Bereich 0 < p <= 1 liegen.

Parameter

Name Typ Default Beschreibung
$n Pflicht int Die Anzahl der gewünschten Erfolge (positiver ganzzahliger Wert, n >= 1). Gibt an, nach wie vielen Erfolgen die Simulation stoppt.
$p Pflicht float Die Erfolgswahrscheinlichkeit eines einzelnen Bernoulli-Versuchs. Muss im Bereich 0 < p <= 1 liegen.

Rückgabewert

Typ
int
Beschreibung
Gibt eine ganzzahlige Zufallszahl zurück, die der negativen Binomialverteilung mit den angegebenen Parametern entspricht. Der Wert repräsentiert die Anzahl der Misserfolge vor dem n-ten Erfolg.

Beispiele

Einfache Zufallsstichprobe aus der negativen Binomialverteilung

<?php
// Voraussetzung: PHP-Erweiterung 'stats' ist installiert

// Wir möchten 5 Erfolge simulieren, jeder Versuch hat 40% Erfolgswahrscheinlichkeit
$n = 5;
$p = 0.4;

$zufallszahl = stats_rand_gen_ibinomial_negative($n, $p);

echo "Anzahl der Misserfolge vor dem {$n}. Erfolg: " . $zufallszahl . PHP_EOL;
Anzahl der Misserfolge vor dem 5. Erfolg: 7

Mehrere Stichproben zur Schätzung des Erwartungswerts

<?php
// Voraussetzung: PHP-Erweiterung 'stats' ist installiert

$n = 3;      // Ziel: 3 Erfolge
$p = 0.5;    // Erfolgswahrscheinlichkeit: 50%
$iterationen = 10000;
$summe = 0;

for ($i = 0; $i < $iterationen; $i++) {
    $summe += stats_rand_gen_ibinomial_negative($n, $p);
}

$mittelwert = $summe / $iterationen;
// Theoretischer Erwartungswert: n * (1 - p) / p = 3 * 0.5 / 0.5 = 3
echo sprintf(
    "Empirischer Mittelwert: %.4f (Theoretischer Erwartungswert: %.4f)\n",
    $mittelwert,
    $n * (1 - $p) / $p
);
Empirischer Mittelwert: 2.9954 (Theoretischer Erwartungswert: 3.0000)

// Wichtig · Fallstricke

Wichtig: Diese Funktion erfordert die separate PHP-Erweiterung stats (PECL), die nicht standardmäßig in PHP enthalten ist. Sie muss über PECL installiert werden (pecl install stats).

Ungültige Parameterwerte (z. B. n <= 0 oder p <= 0 bzw. p > 1) können zu undefiniertem Verhalten oder Fehlern führen. Eine Eingabevalidierung vor dem Aufruf ist daher empfehlenswert.

Der interne Zufallszahlengenerator basiert auf der RANDLIB-Bibliothek und ist nicht kryptografisch sicher. Für sicherheitskritische Anwendungen sollte random_int() oder random_bytes() verwendet werden.