Maison > développement back-end > C++ > Comment générer des nombres aléatoires non répétitifs en C# ?

Comment générer des nombres aléatoires non répétitifs en C# ?

Linda Hamilton
Libérer: 2025-01-21 13:11:10
original
890 Les gens l'ont consulté

How to Generate Non-Repeating Random Numbers in C#?

Générer des nombres aléatoires uniques en C#

Dans le développement d'applications qui doivent générer des nombres uniques aléatoires, les développeurs rencontrent souvent des problèmes avec la classe System.Random. Même si vous utilisez DateTime.Now.Ticks comme graine, il peut toujours y avoir des numéros en double.

Résoudre le problème de valeur en double

System.Random.Next() lui-même ne garantit pas l'unicité des nombres générés. Lorsqu'elle est combinée avec une plage plus étroite (par exemple 0 à 10), la probabilité de rencontrer des valeurs en double est plus élevée.

Alternative : Maintenance de la liste

Pour surmonter cette limitation, une approche plus robuste consiste à maintenir une liste de nombres générés. La duplication peut être évitée en vérifiant si le numéro potentiel existe déjà dans la liste.

Ce qui suit est une implémentation modifiée utilisant cette stratégie :

public Random a = new Random();
public List<int> randomList = new List<int>();
int MyNumber = 0;

private void NewNumber()
{
    MyNumber = a.Next(0, 10);
    if (!randomList.Contains(MyNumber))
        randomList.Add(MyNumber);
}
Copier après la connexion

Cette approche garantit la création de valeurs véritablement uniques en maintenant une liste de numéros générés et en filtrant les doublons.

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 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