Maison >développement back-end >tutoriel php >Comment puis-je générer efficacement des nombres aléatoires uniques dans une plage spécifique ?

Comment puis-je générer efficacement des nombres aléatoires uniques dans une plage spécifique ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-14 02:05:09267parcourir

How Can I Efficiently Generate Unique Random Numbers Within a Specific Range?

Génération de nombres aléatoires uniques dans une plage : approche optimisée

Pour générer des nombres aléatoires uniques dans une plage spécifiée, envisagez les méthodes améliorées suivantes :

Tableau avec ordre mélangé :

  • Créez un tableau avec des nombres dans le plage souhaitée.
  • Utilisez shuffle() pour randomiser l'ordre des éléments du tableau.
$numbers = range(1, 20);
shuffle($numbers);

Fonction enveloppée :

  • Définissez une fonction qui encapsule la logique permettant de générer un nombre spécifié de nombres aléatoires uniques dans une plage.
  • Dans la fonction, crée un tableau avec la plage souhaitée, mélange son ordre et renvoie une tranche du tableau contenant le nombre d'éléments souhaité.
function UniqueRandomNumbersWithinRange($min, $max, $quantity) {
    $numbers = range($min, $max);
    shuffle($numbers);
    return array_slice($numbers, 0, $quantity);
}

Exemple d'utilisation :

$result = UniqueRandomNumbersWithinRange(0, 25, 5);

Cela générera et renverra un tableau de 5 nombres uniques ordonnés aléatoirement dans la plage 0-25.

Exemple de résultat :

$result = [14, 16, 17, 20, 1]

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