Maison >développement back-end >C++ >Comment puis-je éviter les nombres aléatoires en double en C# ?

Comment puis-je éviter les nombres aléatoires en double en C# ?

DDD
DDDoriginal
2025-01-05 06:45:39878parcourir

How Can I Avoid Duplicate Random Numbers in C#?

Évitez les valeurs aléatoires en double en amorçant une classe aléatoire

Le problème décrit est que les valeurs aléatoires générées par la classe Random ne sont pas vraiment aléatoires, conduisant à la génération de numéros en double dans une boucle. Cela se produit parce que le générateur de nombres aléatoires (RNG) utilise une valeur de départ pour générer des nombres, et si la même valeur de départ est utilisée à chaque fois, la même séquence de nombres sera générée.

Pour surmonter ce problème, il est essentiel d’ensemencer le RNG avec une valeur différente à chaque fois. Cela garantit que la séquence de nombres aléatoires est véritablement aléatoire et non prévisible.

Une méthode efficace pour amorcer le RNG consiste à utiliser le code de hachage d'un GUID (identifiant globalement unique) généré aléatoirement. Cette approche génère une valeur de départ hautement aléatoire en raison du caractère aléatoire inhérent des GUID.

Vous trouverez ci-dessous un exemple de code qui illustre cette technique :

Random rand = new Random(Guid.NewGuid().GetHashCode());

En implémentant cette méthode d'amorçage, vous pouvez éviter dupliquez des valeurs aléatoires et obtenez une séquence de nombres vraiment imprévisible pour votre application.

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