Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich effizient eine Liste eindeutiger Zufallszahlen innerhalb eines bestimmten Bereichs erstellen?

Wie kann ich effizient eine Liste eindeutiger Zufallszahlen innerhalb eines bestimmten Bereichs erstellen?

Susan Sarandon
Susan SarandonOriginal
2024-12-07 08:54:12586Durchsuche

How Can I Efficiently Generate a List of Unique Random Numbers Within a Specific Range?

Eindeutige Zufallszahlen innerhalb eines Bereichs generieren

Eine Liste eindeutiger Zufallszahlen innerhalb eines bestimmten Bereichs zu erstellen, kann eine herausfordernde Aufgabe sein. Ein Ansatz besteht darin, Zufallszahlen zu generieren und jedes Mal zu prüfen, ob sie eindeutig sind. Diese Methode kann jedoch für große Bereiche oder eine große Anzahl von Zufallszahlen ineffizient sein.

Ein optimierterer Ansatz besteht darin, ein Array von Zahlen innerhalb des gewünschten Bereichs zu erstellen und das Array dann zu mischen, um die Reihenfolge zufällig zu bestimmen. Das resultierende Array enthält eindeutige Zufallszahlen innerhalb des angegebenen Bereichs.

Verwenden eines Arrays mit einem Zahlenbereich in zufälliger Reihenfolge:

$numbers = range(1, 20);
shuffle($numbers);

In diesem Code Bereich (1, 20) erstellt ein Array mit Zahlen von 1 bis 20. Die Funktion shuffle() randomisiert dann die Reihenfolge der Zahlen im Array. Diese Methode ist besonders nützlich, wenn die Anzahl der benötigten Zufallszahlen kleiner oder gleich dem Zahlenbereich ist.

Verwendung einer Wrapped-Funktion:

Für komplexere Szenarien , können Sie eine umschlossene Funktion erstellen, die den Minimalwert, den Maximalwert und die gewünschte Menge an Zufallszahlen als Eingabe verwendet:

function UniqueRandomNumbersWithinRange($min, $max, $quantity) {
    $numbers = range($min, $max);
    shuffle($numbers);
    return array_slice($numbers, 0, $quantity);
}

Diese Funktion verwendet den Anfangsbereich von Zahlen, mischt sie und verwendet dann array_slice(), um die gewünschte Anzahl von Zufallszahlen zu extrahieren.

Beispielverwendung:

Der folgende Code zeigt, wie UniqueRandomNumbersWithinRange verwendet wird () Funktion:

<?php
print_r(UniqueRandomNumbersWithinRange(0, 25, 5));
?>

Ergebnis:

Array
(
    [0] => 14
    [1] => 16
    [2] => 17
    [3] => 20
    [4] => 1
)

Dieser Code generiert ein Array von 5 eindeutigen Zufallszahlen zwischen 0 und 25. Die Zahlen werden gemischt, um Eindeutigkeit sicherzustellen .

Das obige ist der detaillierte Inhalt vonWie kann ich effizient eine Liste eindeutiger Zufallszahlen innerhalb eines bestimmten Bereichs erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn