Maison >développement back-end >tutoriel php >Résumé des méthodes pour générer des nombres aléatoires non répétitifs en PHP

Résumé des méthodes pour générer des nombres aléatoires non répétitifs en PHP

不言
不言original
2018-06-06 11:33:582033parcourir

Cet article résume 5 méthodes pour générer des nombres aléatoires non répétitifs. Les méthodes 1, 2 et 3 sont mes méthodes couramment utilisées. Les méthodes 4 et 5 sont là pour vous aider. Il existe encore d'autres méthodes, et chacun est invité à nous faire part des méthodes manquantes, afin que nous puissions progresser ensemble

Qu'il s'agisse d'une application web, d'un WAP ou d'une application mobile, les nombres aléatoires ont leur place . Dans plusieurs petits projets auxquels j'ai été exposé récemment, j'ai souvent besoin de traiter des nombres aléatoires ou des tableaux aléatoires. Par conséquent, je vais résumer quelques méthodes courantes pour générer des nombres aléatoires non répétitifs en PHP.

Méthode 1 :


Copiez le code Le code est le suivant :


< ?php
$numbers = range (1,50);
//shuffle mélange l'ordre du tableau
shuffle ($numbers);
//array_slice prend un certain segment du tableau
$num =6;
$result = array_slice($numbers,0,$num);
print_r($result);

Méthode 2 :


Copier le code Le code est le suivant :

$numbers = range (1,20);
//Sow la graine du générateur de nombres aléatoires, facultatif, cela n'aura aucun impact sur les résultats après test
srand ((float)microtime()*1000000
shuffle (); $numbers);
// Ignorer la première valeur de la liste (l'index est enregistré)
while (list(, $number) = each ($numbers)) {
echo "$number "; 🎜>}
?>


Troisième méthode :


Copier le code

Le code est le suivant :

function NoRand($begin=0,$end=20,$limit=5){
$rand_array=range($begin,$end);
shuffle($rand_array); //Appelle la fonction d'arrangement aléatoire du tableau prêt à l'emploi
return array_slice($rand_array,0,$limit);//Intercepte les premiers morceaux $limit
}
print_r(NoRand());
?> ;


Ce qui précède peut générer aléatoirement 5 valeurs non répétitives entre 1 et 20

Méthode 4 :


Copier le code

Le code est le suivant :

$tmp=array(); 🎜>while(count($tmp)<5){
$tmp[]=mt_rand(1,20);
$tmp=array_unique($tmp); $tmp);
?>


Méthode 5 :


Copier le code

Le code est tel suit :

$tmp = range(1,30);print_r(array_rand($tmp,10));

?>



Cela peut être plus simple que de l'appeler (ps : Si dans Si la taille du pas est spécifiée dans la plage, vous devez faire attention à savoir si le deuxième paramètre de array_rand dépasse la longueur de $tmp).

PHP fournit un ensemble très riche de fonctions de tableau. La plupart des nombres aléatoires peuvent être générés du point de vue des tableaux. Bien sûr, si vous avez une meilleure méthode, veuillez nous le faire savoir. point de départ.

Articles qui pourraient vous intéresser :

Algorithme de génération aléatoire de l'enveloppe rouge WeChat version php

  • WeChat génère aléatoirement un algorithme de montant d'enveloppe rouge version PHP

  • jquery+php génère aléatoirement un partage de code de montant d'enveloppe rouge

  • Convient aux programmes de loterie et Exemple d'algorithme de probabilité PHP de publicités aléatoires

  • Algorithme pour une extraction aléatoire efficace d'enregistrements spécifiés via des tableaux en php

  • Trois méthodes pour générer des nombres aléatoires en php

  • PHP n code de génération de nombres aléatoires unique

  • PHP génère une chaîne aléatoire (3 méthodes)

  • Code de génération de chaîne aléatoire PHP (y compris les lettres majuscules et minuscules)

  • Méthode PHP pour générer aléatoirement une combinaison de chiffres et de lettres

  • Exemple PHP de l'algorithme d'enveloppe rouge aléatoire mis en œuvre

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