So generieren Sie sich nicht wiederholende Zufallszahlen in PHP

不言
Freigeben: 2023-03-23 13:00:01
Original
1934 Leute haben es durchsucht

Dieser Artikel erklärt Ihnen hauptsächlich die Methode zur Erzeugung sich nicht wiederholender Zufallszahlen in PHP. Ich hoffe, er kann Ihnen helfen.


1. In PHP integrierte Funktion zur Implementierung sich nicht wiederholender Zufallszahlen


Anforderung: Um ein Array zu generieren In diesem Array gibt es 10 Elemente, alle Ganzzahlen und sich nicht wiederholende Zufallszahlen zwischen 1 und 60.
Code:

<?php   
    function get_randoms($min,$max,$num){  
       $count = 0;  
       $res = array();  
       while($count<$num){  
            $res[] = mt_random($min,$max);  
            $res = array_flip(array_flip($res));   
            $count = count($res);  
       }  
       return $res;  
    }  
$result = get_randoms(1,60,10);  
?>
Nach dem Login kopieren

Hier stellt $count die Anzahl der Ergebnis-Arrays dar, was in der while-Schleife dazu führt, dass die Anzahl der Ergebnis-Arrays kleiner als die Zielzahl ist. Auf diese Weise wird $count als Array der Zielzahl erhalten. Während

wird in jedem Zyklus durch mt_random($min,$max) ein Wert im Bereich zufällig abgerufen und im Array $res gespeichert, und dann durch zwei Schlüsselwertaustausche, d. h. Durch die Einzigartigkeit des Array-Schlüssels wird sichergestellt, dass keine Duplizierung erfolgt.

2. Implementieren Sie sich nicht wiederholende Zufallszahlen, ohne Funktionen zu verwenden

Nachdem ich den Code dieser Logik gelesen hatte, konnte ich nicht anders, als in tiefe Gedanken zu verfallen. Was würden Sie tun, wenn Sie es täten? Sie kennen die Funktion array_filp nicht?
Um es ganz klar auszudrücken: Es nutzt die Einzigartigkeit des Schlüssels, sodass es nicht zu einer Duplizierung von Zufallszahlen kommt. Können wir dieses Problem also vereinfachen?

Codebeispiel:

<?php   function get_randoms($min,$max,$num){  
   $count = 0;  
   $res = array();  
   while($count<$num){  
       $key = mt_random($min,$max);  
       $res[$key] = $key;  
       $count = count($res);  
   }  
   return $res;  
}  
$result = get_randoms(1,60,10);  
?>
Nach dem Login kopieren

Dies löst dieses Problem vollständig durch die Eindeutigkeit des Array-Schlüssels. array_flip wird überhaupt nicht verwendet.
Zusammenfassung:
1. Da PHP eine große Anzahl integrierter Funktionen bietet, ist ihre Ausführungseffizienz sehr hoch. Wenn Sie auf ein Problem stoßen, versuchen Sie, es so weit wie möglich zu lösen. Das ist bequem und schnell.

2. PHP bietet eine große Anzahl integrierter Funktionen und die Ausführungseffizienz ist ebenfalls sehr hoch. Obwohl die Effizienz hoch ist, dauert die Ausführung dennoch.
Wenn Sie auf ein Problem stoßen, tun Sie es nicht blind. Sie können zunächst die Essenz der Lösung verstehen, damit Sie sie geschickt umsetzen können.

Verwandte Empfehlungen:

Rand()-Funktion zum Generieren von Zufallszahlen in PHP

Fünf Möglichkeiten, Zufallszahlen in PHP ohne Wiederholungen zu generieren

So generieren Sie PHP-Zufallszahlen aus Buchstaben und Zahlen

Das obige ist der detaillierte Inhalt vonSo generieren Sie sich nicht wiederholende Zufallszahlen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage