madshell
Messages postés59Date d'inscriptiondimanche 29 avril 2007StatutMembreDernière intervention21 août 2007
-
12 juin 2007 à 13:43
manureva10
Messages postés20Date d'inscriptionsamedi 22 novembre 2003StatutMembreDernière intervention21 octobre 2011
-
21 oct. 2011 à 18:44
Bonjour,
Désolé pour le grand nombre de question que je pose aujourd'hui mais bon ...
J'utilise actuellement dans mon projet un random avec les millisecondes, mais je pense bien qu'au dela de 10 valeurs, ça doit bloquer.
Voici le code :
{
Random rand = new Random(DateTime.Now.Millisecond);
int value = rand.Next(6);
if (value == 0) session.send("****");
else if (value == 1) session.send("****");
else if (value == 2) session.send("****");
else if(value == 3) session.send("****");
else if(value == 4) session.send("****");
else if(value == 5) session.send("****");
}
Comment pourrais-je faire autrement ??
Merci d'avance.
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 12 juin 2007 à 14:01
Non, en fait ton Random est limité par le '6' que tu passes a la méthode Next.
Si par exemple tu veux 10000 valeurs (entre 0 et 9999) tu fais rand.Next(10000);
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 12 juin 2007 à 15:08
Non, ca n'a pas de rapport avec les millisecondes. Ce qui a un rapport entre les millisecondes, c'est le 'seed'. Essaie de mettre cette valeur a 1000 par exemple, et regarde les valeurs affichées lors de plusieurs executions : tu auras toujours la meme séquence. Un algo de génération de nombres aléatoires dépend justement de ce seed pour débuter sa série de nombres aléatoire. Meme seed -> memes valeurs a chaque execution.
Je te conseille donc de ne pas mettre de seed dans ton constructeur, ou de faire ainsi : Random rand = new Random(Environment.TickCount). Les 2 ont le meme effet
Pour la valeur de la méthode Next, tu peux mettre jusqu'a Int32.MaxValue
Mx
MVP C#
madshell
Messages postés59Date d'inscriptiondimanche 29 avril 2007StatutMembreDernière intervention21 août 20077 12 juin 2007 à 14:18
Oui c'est moi qui l'avait mis à 6, j'avais compris ça. Je suis deja monté à 8 mais je ne pensais pas qu'on pouvait le monter autant qu'on voulait puisque ça à un rapport avec les millisecondes....
Merci.