Mélanger un tableau d'entier ou autre?

bojda Messages postés 13 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 28 février 2006 - 20 févr. 2006 à 14:48
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 29 mars 2008 à 00:08
Bonjour,

j'aimerais savoir si quelqu'un connaît un algorithme de mélange d'un tableau en c# ?



Merci!!

23 réponses

Elektra22 Messages postés 3 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 27 avril 2008
28 mars 2008 à 08:43
Bonjour à tous,
je dois générer des nombres aléatoir,
(pour pouvoir générer des solutions aléatoires pour le Récui Simulé),
j'utilise rnd.Next(min,max), mais ça me génére 4 fois de suite le meme nombre,
comment faire pour avoir des nombres (entier) totalement aléatoire??????
Merci d'avance
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
28 mars 2008 à 23:58
Salut,

Tu peux te servir RNGCryptoServiceProvider. Un Int32 n'est rien d'autre que 4 octets, donc :

RandomNumberGenerator rng = RNGCryptoServiceProvider.Create();
Byte[] bytes = new Byte[4];
rng.GetBytes(bytes);
Int32 nb = BitConverter.ToInt32(bytes, 0);
// ou directement
// Int32 nb = (((bytes[0] | bytes[1] << 8) | bytes[2] << 16) | bytes[3] << 24);

PS : la prochaine fois poste plutôt un nouveau sujet sur le forum, en mettant un lien vers l'ancien si nécessaire, car tu as peu de chances de réponse sur d'aussi vieux sujets.

/*
coq
MVP Visual C#
CoqBlog
*/
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
29 mars 2008 à 00:08
Sinon à part ça, je suppose que tu recrées l'instance de Random à chaque tour de la boucle ?
Si tu n'a pas besoin de nombre aléatoires au point de devoir passer par RNGCryptoServiceProvider et que tu peux te contenter de nombres pseudo aléatoires, contente toi de sortir la création de l'instance de Random de la boucle, ça n'en sera que mieux pour les performances.
Une solution mixte est d'utiliser RNGCryptoServiceProvider pour générer le seed de Random.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous