Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich innerhalb eines bestimmten Bereichs effizient eindeutige Zufallszahlen generieren?

Wie kann ich innerhalb eines bestimmten Bereichs effizient eindeutige Zufallszahlen generieren?

Barbara Streisand
Barbara StreisandOriginal
2024-12-14 02:05:09262Durchsuche

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

Generieren eindeutiger Zufallszahlen innerhalb eines Bereichs: Optimierter Ansatz

Um eindeutige Zufallszahlen innerhalb eines angegebenen Bereichs zu generieren, ziehen Sie die folgenden verbesserten Methoden in Betracht:

Array mit gemischter Reihenfolge:

  • Erstellen Sie ein Array mit Zahlen darin den gewünschten Bereich.
  • Verwenden Sie shuffle(), um die Reihenfolge der Array-Elemente zufällig zu ändern.
$numbers = range(1, 20);
shuffle($numbers);

Umschlossene Funktion:

  • Definieren Sie eine Funktion, die die Logik zum Generieren einer angegebenen Anzahl eindeutiger Zufallszahlen innerhalb eines kapselt Bereich.
  • Erstellen Sie innerhalb der Funktion ein Array mit dem gewünschten Bereich, mischen Sie seine Reihenfolge und geben Sie einen Ausschnitt des Arrays zurück, der die gewünschte Anzahl von Elementen enthält.
function UniqueRandomNumbersWithinRange($min, $max, $quantity) {
    $numbers = range($min, $max);
    shuffle($numbers);
    return array_slice($numbers, 0, $quantity);
}

Beispielverwendung:

$result = UniqueRandomNumbersWithinRange(0, 25, 5);

Dadurch wird ein Array von 5 eindeutigen, zufällig geordneten Zahlen innerhalb des Bereichs generiert und zurückgegeben 0-25.

Probenergebnis:

$result = [14, 16, 17, 20, 1]

Das obige ist der detaillierte Inhalt vonWie kann ich innerhalb eines bestimmten Bereichs effizient eindeutige Zufallszahlen generieren?. 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