Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung der Methoden zum Generieren sich nicht wiederholender Zufallszahlen in PHP

Zusammenfassung der Methoden zum Generieren sich nicht wiederholender Zufallszahlen in PHP

不言
不言Original
2018-06-06 11:33:581989Durchsuche

Dieser Artikel fasst 5 Methoden zum Generieren sich nicht wiederholender Zufallszahlen zusammen. Methoden 1, 2 und 3 sind meine am häufigsten verwendeten Methoden. Es gibt noch andere Methoden, und jeder kann uns gerne die fehlenden Methoden mitteilen, damit wir gemeinsam vorankommen

Ob es sich um eine Webanwendung, ein WAP oder eine mobile Anwendung handelt, Zufallszahlen haben ihren Platz . In mehreren kleinen Projekten, mit denen ich in letzter Zeit konfrontiert war, muss ich mich häufig mit Zufallszahlen oder Zufallsarrays befassen. Daher werde ich einige gängige Methoden zum Generieren sich nicht wiederholender Zufallszahlen in PHP zusammenfassen.

Methode 1:


Kopieren Sie den Code Der Code lautet wie folgt:


< ?php
$numbers = range (1,50);
//shuffle mischt die Reihenfolge des Arrays
shuffle ($numbers);
//array_slice nimmt ein bestimmtes Segment des Arrays
$num =6;
$result = array_slice($numbers,0,$num);
print_r($result);

Methode 2 :


Code kopieren Der Code lautet wie folgt:

$numbers = Bereich (1,20);
//Säen Sie den Zufallszahlengenerator-Seed, optional, es wird keinen Einfluss auf die Ergebnisse nach dem Test haben
srand ((float)microtime()*1000000); $numbers);
//Überspringen Sie den ersten Wert der Liste (der Index wird gespeichert)
while (list(, $number) = every ($numbers)) {
echo "$number ";
}
?>


Methode drei:


Code kopieren

Der Code lautet wie folgt :

function NoRand($begin=0,$end=20,$limit=5){
$rand_array=range($begin,$end) ;
shuffle($rand_array); //Rufen Sie die vorgefertigte Array-Zufallsanordnungsfunktion auf
return array_slice($rand_array,0,$limit);//Abfangen der ersten $limit-Stücke
}
print_r(NoRand());
?> ;


Das Obige kann zufällig 5 sich nicht wiederholende Werte zwischen 1 und 20 generieren

Methode 4:


Code kopieren

Der Code lautet wie folgt:

$tmp=array();
while(count($tmp)<5){
$tmp[]=mt_rand(1,20);
$tmp=array_unique($tmp);
print_r ($tmp);
?>


Methode 5:


Kopieren Sie den Code

Der Code ist wie folgt:

$tmp = range(1,30);

print_r(array_rand($tmp,10));
?>


Dies ist möglicherweise einfacher als der Aufruf (ps: Wenn die Schrittgröße im Bereich angegeben wird, müssen Sie darauf achten, ob der zweite Parameter von array_rand die Länge von $tmp überschreitet).

PHP bietet eine sehr umfangreiche Array-Funktion. Wenn Sie eine bessere Methode haben, teilen Sie uns dies bitte mit Punkt.

Artikel, die Sie interessieren könnten:

WeChat Red Envelope Random Generation Algorithmus PHP-Version
  • WeChat generiert nach dem Zufallsprinzip einen Betragsalgorithmus für rote Umschläge. PHP-Version
  • jquery+php generiert nach dem Zufallsprinzip einen Betragscode für einen roten Umschlag. Teilen
  • Geeignet für Lotterieprogramme und Beispiel für einen PHP-Wahrscheinlichkeitsalgorithmus für zufällige Werbung
  • Algorithmus zur effizienten zufälligen Extraktion bestimmter Datensätze durch Arrays in PHP
  • Drei Methoden zur Generierung von Zufallszahlen in PHP
  • PHP n eindeutiger Zufallszahlen-Generierungscode
  • PHP generiert Zufallszeichenfolge (3 Methoden)
  • PHP-Code zur Generierung zufälliger Zeichenfolgen (einschließlich Groß- und Kleinbuchstaben)
  • PHP-Methode zum zufälligen Generieren einer Kombination aus Zahlen und Buchstaben
  • PHP Beispiel eines implementierten Random-Red-Envelope-Algorithmus

Das obige ist der detaillierte Inhalt vonZusammenfassung der Methoden zum Generieren sich nicht wiederholender Zufallszahlen in PHP. 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