Maison  >  Article  >  développement back-end  >  Comment générer des nombres aléatoires non répétitifs en PHP

Comment générer des nombres aléatoires non répétitifs en PHP

不言
不言original
2018-04-09 17:51:161932parcourir

Cet article partage principalement avec vous la méthode de production de nombres aléatoires non répétitifs en PHP. J'espère qu'il pourra vous aider.


1. Fonction intégrée à PHP pour implémenter des nombres aléatoires non répétitifs


Exigence : générer un tableau , dans ce tableau Il y a 10 éléments, qui sont tous des entiers et des nombres aléatoires non répétitifs compris entre 1 et 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);  
?>

Ici, $count représente le nombre de tableaux de résultats, ce qui dans la boucle while rend le nombre de tableaux de résultats inférieur au nombre cible. De cette façon, $count est obtenu sous la forme d'un tableau du nombre cible. Pendant

, dans chaque cycle, via mt_random($min,$max), une valeur comprise dans la plage est obtenue aléatoirement, 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.

2. Implémentez des nombres aléatoires non répétitifs sans utiliser de fonctions

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 le faisiez. vous ne connaissez 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. Parce 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.

Recommandations associées :

Fonction rand() pour générer des nombres aléatoires en php

Cinq façons de générer des nombres aléatoires en php sans répéter

Comment générer des nombres aléatoires php à partir de lettres et de chiffres

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