Comment générer des nombres aléatoires non répétitifs en PHP : créez d'abord un exemple de fichier PHP ; puis utilisez la méthode "mt_random($min,$max)" pour générer aléatoirement une valeur dans la plage ; clé-échange « deux fois la valeur », c'est-à-dire que grâce au caractère unique de la clé du tableau, il peut être réalisé sans duplication.
L'environnement d'exploitation de ce tutoriel : Système Windows 7, PHP version 5.6. Cette méthode convient à toutes les marques d'ordinateurs.
Recommandé : "Tutoriel vidéo PHP"
Comment générer des nombres aléatoires non répétitifs en PHP
PHP intégré dans les fonctions, il n'y a pas de nombres aléatoires répétitifs
Exigence : pour générer un tableau, il y a 10 éléments dans ce tableau, tous sont des nombres entiers et ce sont des nombres aléatoires non répétitifs compris entre 1 et 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, et il rend le nombre de tableaux de résultats inférieur à la cible dans le while numéro de boucle. De cette façon, $count est obtenu sous la forme d'un tableau du nombre cible. 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!