Heim >Backend-Entwicklung >PHP-Problem >So generieren Sie sich nicht wiederholende Zufallszahlen in PHP

So generieren Sie sich nicht wiederholende Zufallszahlen in PHP

藏色散人
藏色散人Original
2020-11-25 10:01:133081Durchsuche

So generieren Sie sich nicht wiederholende Zufallszahlen in PHP: Erstellen Sie zunächst eine PHP-Beispieldatei und verwenden Sie dann die Methode „mt_random($min,$max)“, um schließlich über zwei „Schlüssel“ einen Wert innerhalb des Bereichs zu generieren. Wert"-Austausch, das heißt, durch die Eindeutigkeit des Array-Schlüssels reicht es aus, Duplikate zu vermeiden.

So generieren Sie sich nicht wiederholende Zufallszahlen in PHP

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 5.6. Diese Methode ist für alle Computermarken geeignet.

Empfohlen: „PHP-Video-Tutorial

So generieren Sie sich nicht wiederholende Zufallszahlen in PHP

In PHP integrierte Funktion für sich nicht wiederholende Zufallszahlen

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

Code:

Codebeispiel:

<?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);  
       
 
        ?>

Hier verwendet er $count, um die Anzahl der Ergebnis-Arrays zu ermitteln, und er macht die Anzahl der Ergebnis-Arrays in der While-Schleife kleiner als die Zielzahl. Dadurch erhalten wir $count, ein Array von Zielzahlen.

Während jedes Zyklus wird durch mt_random($min,$max) ein Wert innerhalb des Bereichs zufällig abgerufen und im Array $res gespeichert, und dann durch zwei Schlüsselwertaustausche, d. h. durch den eindeutigen Wert von Die Natur des Array-Schlüssels macht eine Wiederholung unmöglich.

Nachdem ich den Code dieser Logik gelesen hatte, musste ich tief nachdenken. Was würden Sie tun, wenn Sie die Funktion array_filp nicht kennen würden?

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);  
       
 
        ?>

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 bereitstellt, 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 erkennen, damit Sie sie geschickt umsetzen können.

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!

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