Maison >développement back-end >Problème PHP >Comment obtenir des nombres aléatoires non répétitifs en php

Comment obtenir des nombres aléatoires non répétitifs en php

藏色散人
藏色散人original
2020-09-02 09:22:352369parcourir

Comment obtenir des nombres aléatoires non répétitifs en PHP : Tout d'abord, obtenez aléatoirement une valeur dans l'intervalle via la méthode "mt_random($min,$max)" puis obtenez la non-répétition grâce à deux "key-" ; "valeur" échanges Juste un nombre aléatoire.

Comment obtenir des nombres aléatoires non répétitifs en php

Recommandé : "Tutoriel vidéo PHP"

Méthode de production de nombres aléatoires non répétitifs en PHP

Fonction intégrée PHP qui ne répète pas de nombres aléatoires

Exigence : Pour générer un tableau, il y a 10 éléments dans ce tableau, tous sont des entiers , et ils sont 1- Un nombre aléatoire non répétitif compris entre 60.

Code :

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

Ici, il utilise $count pour obtenir le nombre de tableaux dans le. while boucle, le nombre de tableaux de résultats est inférieur au nombre cible. Grâce à cela, nous obtenons $count qui est un tableau de nombres cibles. Pendant

, à chaque cycle, via mt_random($min,$max), une valeur de la plage est obtenue aléatoirement et stockée dans le tableau $res, puis via deux échanges clé-valeur, c'est-à-dire Grâce au caractère unique de la clé du tableau, aucune duplication n'est garantie.

Après avoir lu le code de cette logique, je n'ai pas pu m'empêcher de réfléchir profondément. Que feriez-vous si vous ne connaissiez pas la fonction array_filp ?

Pour parler franchement, il utilise le caractère unique de la clé afin qu'il n'y ait pas de duplication de nombres aléatoires. Alors pouvons-nous simplifier ce problème ?

Exemple de code :

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

Cela résout complètement ce problème grâce au caractère unique de la clé du tableau. Array_flip ne sera pas utilisé du tout.

Résumé :

1 Étant donné que PHP fournit un grand nombre de fonctions intégrées, leur efficacité d'exécution est très élevée. Lorsque vous rencontrez un problème, essayez de l'utiliser pour résoudre le problème autant que possible. C'est pratique et rapide.

2. PHP fournit un grand nombre de fonctions intégrées et l'efficacité d'exécution est également très élevée. Cependant, même si l'efficacité est élevée, son exécution prend encore du temps.

Lorsque vous rencontrez un problème, ne le faites pas aveuglément. Vous pouvez d'abord comprendre l'essence de la solution afin de pouvoir la mettre en œuvre habilement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn