Start · Sprachen · PHP · Referenz · stats_rand_gen_int

stats_rand_gen_int

Funktion

Erzeugt eine zufällige Ganzzahl im Bereich von 1 bis 2.147.483.562 (einschließlich beider Grenzen).

Kategorie: math

Signatur

stats_rand_gen_int(): int

Beschreibung

stats_rand_gen_int() ist Teil der stats-PECL-Erweiterung und gibt eine pseudo-zufällige Ganzzahl zurück. Der Wertebereich ist 1 bis 2147483562, was dem Maximum des internen Zufallszahlengenerators der stats-Bibliothek entspricht (basierend auf dem L'Ecuyer-Algorithmus).

Die Funktion eignet sich für statistische Simulationen und Monte-Carlo-Berechnungen, bei denen eine gleichmäßig verteilte Ganzzahl ohne eigene Bereichsangabe benötigt wird. Sie ist nicht für kryptographische Zwecke geeignet.

Im Gegensatz zu rand() oder mt_rand() nutzt diese Funktion den internen Zufallszahlengenerator der stats-Erweiterung, der für statistische Berechnungen optimiert ist und eine hohe Periode aufweist.

Da die Funktion zur optionalen PECL-Erweiterung stats gehört, muss diese explizit installiert und aktiviert sein, bevor sie verwendet werden kann.

Rückgabewert

Typ
int
Beschreibung
Gibt eine pseudo-zufällige Ganzzahl zwischen 1 und 2147483562 zurück.

Beispiele

Einfache Zufallszahl erzeugen

<?php
// Sicherstellen, dass die stats-Erweiterung geladen ist
if (!extension_loaded('stats')) {
    die('Die stats-Erweiterung ist nicht installiert.');
}

$zahl = stats_rand_gen_int();
echo 'Zufällige Ganzzahl: ' . $zahl . PHP_EOL;
Zufällige Ganzzahl: 1048293847

Verwendung in einer Monte-Carlo-Simulation

<?php
// Einfache Monte-Carlo-Schätzung: Verhältnis gerader zu ungerader Zahlen
$gerade = 0;
$ungerade = 0;
$versuche = 10000;

for ($i = 0; $i < $versuche; $i++) {
    $zahl = stats_rand_gen_int();
    if ($zahl % 2 === 0) {
        $gerade++;
    } else {
        $ungerade++;
    }
}

echo 'Versuche: ' . $versuche . PHP_EOL;
echo 'Gerade:   ' . $gerade   . ' (' . round($gerade / $versuche * 100, 2) . '%)' . PHP_EOL;
echo 'Ungerade: ' . $ungerade . ' (' . round($ungerade / $versuche * 100, 2) . '%)' . PHP_EOL;
Versuche: 10000 Gerade: 4987 (49.87%) Ungerade: 5013 (50.13%)

// Wichtig · Fallstricke

Sicherheitshinweis: stats_rand_gen_int() ist ein pseudo-zufälliger Generator und nicht für kryptographische Anwendungen (z. B. Token-Generierung, Passwörter) geeignet. Verwende stattdessen random_int() (PHP 7+) für kryptographisch sichere Zufallszahlen.

Abhängigkeit: Die Funktion steht nur zur Verfügung, wenn die PECL-Erweiterung stats installiert ist. Auf vielen Shared-Hosting-Umgebungen ist diese Erweiterung nicht standardmäßig verfügbar.

Der Maximalwert 2147483562 ist kein willkürlicher Wert, sondern ergibt sich aus dem Modulus des ersten Teilgenerators des kombinierten Multiplikativ-Kongruenz-Generators nach L'Ecuyer (2^31 − 86).