Un gros random (plus que les 10 millisecondes.)

Résolu
madshell Messages postés 59 Date d'inscription dimanche 29 avril 2007 Statut Membre Dernière intervention 21 août 2007 - 12 juin 2007 à 13:43
manureva10 Messages postés 20 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 21 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.

7 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
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);

Mx
MVP C# 
3
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
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# 
3
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
12 juin 2007 à 13:50
Salut,

que veux tu dire par "au dela de 10 valeurs, ca doit bloquer" ?

Mx
MVP C# 
0
madshell Messages postés 59 Date d'inscription dimanche 29 avril 2007 Statut Membre Dernière intervention 21 août 2007 7
12 juin 2007 à 13:53
Euh je sais pas, y a pas que 10 millisecondes ? Ah non 99 ....
Donc je peux mettre 99 phrases ou c'est illimité ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
madshell Messages postés 59 Date d'inscription dimanche 29 avril 2007 Statut Membre Dernière intervention 21 août 2007 7
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.
0
madshell Messages postés 59 Date d'inscription dimanche 29 avril 2007 Statut Membre Dernière intervention 21 août 2007 7
12 juin 2007 à 16:12
Ok
0
manureva10 Messages postés 20 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 21 octobre 2011
21 oct. 2011 à 18:44
merci un peut en retard,comme quoi le forum son utile même après presque 5 ans
un débutant en csharp
0