Bonjour,
J'aimerai créer une fonction me permettant de générer un nombre aléatoirement, cela dit l'execution de l'appli fait que les nombres sont tous identiques !
voici ma fonction :
Elle reçoit 2 paramètres : Les valeurs min et max qui représentent l'intervalle du nombre à générer aléatoirement.private int Randomize(int min, int max)
{
Random rdm1 = new Random(unchecked((int)(DateTime.Now.Ticks)));
return rdm1.Next(min, ++max);
}
J'ai lu dans le MSDN :
Je n'arrive pas à mettre en place un algo me permettant de générer à chaque fois un nombre différent ?!Notes
Si votre application nécessite différentes séquences de nombres aléatoires, appelez alors ce constructeur à plusieurs reprises avec différentes valeurs initiales. Pour produire une valeur initiale unique, il suffit de la rendre dépendante du temps. Vous pouvez, par exemple, dériver la valeur initiale à partir de l'horloge système.
Toutefois, si votre application s'exécute sur un ordinateur rapide, l'horloge système risque alors de ne pas avoir le temps de changer entre les appels de ce constructeur ; la valeur initiale risque d'être la même pour différentes instances de Random. Dans ce cas, appliquez un algorithme permettant de différencier la valeur initiale à chaque appel.
Par exemple, les expressions C# suivantes utilisent une opération de bits complémentaire pour générer deux valeurs initiales différentes même si la valeur de l'heure système est la même.
Random rdm1 = new Random(unchecked((int)DateTime.Now.Ticks));
Random rdm2 = new Random(~unchecked((int)DateTime.Now.Ticks));
Merci
édit: Quand j'execute le débogeur, les nombres généré sont bien différents, à condition de mettre des points d'arrêts aux bons endroit pour "ralentir" le programme. J'aimerai bien avoir le même résultat qu'avec le débogeur !
Partager