Start · Sprachen · PHP · Referenz · stats_rand_gen_ibinomial

stats_rand_gen_ibinomial

Funktion

Erzeugt eine zufällige ganzzahlige Stichprobe aus der Binomialverteilung mit <code>n</code> Versuchen und Erfolgswahrscheinlichkeit <code>pp</code>.

Kategorie: math

Signatur

stats_rand_gen_ibinomial(int $n, float $pp): int

Beschreibung

stats_rand_gen_ibinomial() ist Teil der PHP-Erweiterung stats und gibt eine zufällige ganze Zahl zurück, die gemäß einer Binomialverteilung B(n, p) verteilt ist. Sie modelliert die Anzahl der Erfolge in einer festen Anzahl unabhängiger Bernoulli-Experimente mit konstanter Erfolgswahrscheinlichkeit.

Die Funktion eignet sich für statistische Simulationen, Monte-Carlo-Methoden und Wahrscheinlichkeitsberechnungen — etwa um zu simulieren, wie viele von n Münzwürfen Kopf zeigen, oder wie viele Produkte einer Charge fehlerhaft sind, wenn die Fehlerrate bekannt ist.

Der Parameter pp muss im Intervall [0, 1] liegen. Der Rückgabewert ist eine ganze Zahl zwischen 0 und n. Das Ergebnis hängt vom internen Zufallsgenerator der stats-Bibliothek ab, der sich von PHPs eigenem mt_rand() unterscheidet.

Hinweis: Diese Funktion setzt die PECL-Erweiterung stats voraus, die nicht standardmäßig in PHP enthalten ist und separat installiert werden muss.

Parameter

Name Typ Default Beschreibung
$n Pflicht int Anzahl der Versuche (Bernoulli-Experimente). Muss eine nicht-negative ganze Zahl sein.
$pp Pflicht float Erfolgswahrscheinlichkeit je Versuch. Muss im Bereich [0.0, 1.0] liegen.

Rückgabewert

Typ
int
Beschreibung
Gibt eine zufällige ganze Zahl zwischen 0 und n zurück, die der Anzahl der Erfolge in n Versuchen mit der Erfolgswahrscheinlichkeit pp entspricht.

Beispiele

Simulation von Münzwürfen (faire Münze)

<?php
// Simuliert 10 Münzwürfe mit 50% Wahrscheinlichkeit für Kopf
$treffer = stats_rand_gen_ibinomial(10, 0.5);
echo "Anzahl Kopf bei 10 Würfen: " . $treffer . PHP_EOL;
// Ausgabe variiert, z. B.: Anzahl Kopf bei 10 Würfen: 6
Anzahl Kopf bei 10 Würfen: 6

Qualitätskontrolle: fehlerhafte Produkte in einer Charge

<?php
// 200 Produkte, 3% Fehlerrate
$anzahlProdukte = 200;
$fehlerRate = 0.03;

$fehlerhaft = stats_rand_gen_ibinomial($anzahlProdukte, $fehlerRate);
echo "Fehlerhafte Produkte in der Charge: " . $fehlerhaft . PHP_EOL;

// Mehrere Simulationsdurchläufe
$ergebnisse = [];
for ($i = 0; $i < 5; $i++) {
    $ergebnisse[] = stats_rand_gen_ibinomial($anzahlProdukte, $fehlerRate);
}
echo "5 Simulationsdurchläufe: " . implode(', ', $ergebnisse) . PHP_EOL;
Fehlerhafte Produkte in der Charge: 7 5 Simulationsdurchläufe: 5, 8, 4, 6, 7

// Wichtig · Fallstricke

Voraussetzung: Die PECL-Erweiterung stats muss installiert und in der php.ini aktiviert sein (extension=stats). Sie ist nicht Teil der Standard-PHP-Distribution.

Gültige Parameterwerte: pp muss zwingend zwischen 0.0 und 1.0 liegen. Werte außerhalb dieses Bereichs können zu undefinierten Ergebnissen oder Fehlern führen. n sollte nicht negativ sein.

Reproduzierbarkeit: Um reproduzierbare Ergebnisse zu erzielen, kann der interne Zufallsgenerator der stats-Erweiterung über stats_rand_setall() mit einem festen Seed initialisiert werden.