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

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

Susan Sarandon
Libérer: 2024-12-07 08:54:12
original
582 Les gens l'ont consulté

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

Générer des nombres aléatoires uniques dans une plage

Générer une liste de nombres aléatoires uniques dans une plage spécifiée peut être une tâche difficile. Une approche consiste à générer des nombres aléatoires et à vérifier s’ils sont uniques à chaque fois. Cependant, cette méthode peut s'avérer inefficace pour les grandes plages ou un grand nombre de nombres aléatoires.

Une approche plus optimisée consiste à créer un tableau de nombres dans la plage souhaitée, puis à mélanger le tableau pour rendre l'ordre aléatoire. Le tableau résultant contiendra des nombres aléatoires uniques dans la plage spécifiée.

Utilisation d'un tableau avec une plage de nombres dans un ordre aléatoire :

$numbers = range(1, 20);
shuffle($numbers);
Copier après la connexion

Dans ce code, plage (1, 20) crée un tableau de nombres de 1 à 20. La fonction shuffle() rend ensuite aléatoire l'ordre des nombres dans le tableau. Cette méthode est particulièrement utile lorsque le nombre de nombres aléatoires nécessaires est inférieur ou égal à la plage de nombres.

Utilisation d'une fonction enveloppée :

Pour des scénarios plus complexes , vous pouvez créer une fonction encapsulée qui prend en entrée la valeur minimale, la valeur maximale et la quantité souhaitée de nombres aléatoires :

function UniqueRandomNumbersWithinRange($min, $max, $quantity) {
    $numbers = range($min, $max);
    shuffle($numbers);
    return array_slice($numbers, 0, $quantity);
}
Copier après la connexion

Cette fonction prend la plage initiale de nombres, les mélange, puis utilise array_slice() pour extraire le nombre souhaité de nombres aléatoires.

Exemple d'utilisation :

Le code suivant montre comment utiliser le UniqueRandomNumbersWithinRange() fonction :

<?php
print_r(UniqueRandomNumbersWithinRange(0, 25, 5));
?>
Copier après la connexion

Résultat :

Array
(
    [0] => 14
    [1] => 16
    [2] => 17
    [3] => 20
    [4] => 1
)
Copier après la connexion

Ce code génère un tableau de 5 nombres aléatoires uniques entre 0 et 25. Les nombres sont mélangés pour garantir l'unicité .

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal