Zufallszahlen ohne Wiederholung generieren: Ein umfassender Leitfaden
Bei Ihrem Bestreben, eine Website zu entwickeln, die Yelp-Einträge zufällig anordnet, suchen Sie nach einer Methode, die... stellt sicher, dass alle 20 Einträge einmal angezeigt werden, bevor es zu Wiederholungen kommt. Lassen Sie uns eine Reihe von Ansätzen erkunden, um dieser Herausforderung zu begegnen.
Rand(0, 19)-Ansatz von PHP
Ihre aktuelle Implementierung verwendet PHPs rand(0, 19) zum Generieren ein zufälliger Index zur Auswahl eines Yelp-Eintrags. Allerdings hat diese Methode eine Einschränkung: Sie kann Zahlen wiederholen. Um dies zu überwinden, benötigen wir einen ausgefeilteren Ansatz.
Mischen eines Zahlenbereichs
Eine effektive Lösung besteht darin, einen Zahlenbereich zu mischen, der die Listungsindizes darstellt. Dies kann mit range() und shuffle() wie folgt erreicht werden:
<code class="php">$numbers = range(0, 19); shuffle($numbers);</code>
Dadurch wird ein Array mit Zahlen von 0 bis 19 in zufälliger Reihenfolge erstellt.
Alternative Lösung mit randomGen()-Funktion
Ein anderer Ansatz besteht darin, eine benutzerdefinierte randomGen()-Funktion zu verwenden, die ein Minimum, ein Maximum und eine Menge als Parameter akzeptiert. Es generiert eine Liste eindeutiger Zufallszahlen innerhalb des angegebenen Bereichs:
<code class="php">function randomGen($min, $max, $quantity) { $numbers = range($min, $max); shuffle($numbers); return array_slice($numbers, 0, $quantity); } print_r(randomGen(0, 20, 20)); // generates 20 unique random numbers</code>
Speichern verwendeter Nummern und Aktualisieren in einer Datenbank
Um sicherzustellen, dass alle Einträge ohne angezeigt werden Wiederholung können Sie die angezeigten Einträge in einer Datenbank speichern. Überprüfen Sie jedes Mal, wenn Sie eine zufällige Auflistung anzeigen, ob ihre ID mit einer in der Datenbank übereinstimmt. Wenn nicht, zeigen Sie den Eintrag an und fügen Sie seine ID zur Datenbank hinzu. Wiederholen Sie diesen Vorgang, bis alle Einträge angezeigt wurden.
Diese Methode stellt sicher, dass jeder Eintrag genau einmal angezeigt wird, bevor es zu einer Wiederholung kommt.
Das obige ist der detaillierte Inhalt vonWie generiert man Zufallszahlen ohne Wiederholung für einen umfassenden Listing-Randomizer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!