Fonction random

cs_mancunien Messages postés 1 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 4 décembre 2009 - 4 déc. 2009 à 22:38
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 - 7 déc. 2009 à 10:09
Bonjour voila jessaye de generer une liste de 15 nombre aléatoire different compris entre 1 et 15 mai les valeur se repettent parfois, ainsi j'obtient par exemple
1
3
14
7
3
8
2
14
ect..
j'aimerais eliminer les doublon voila mon code:

int rndNumber = 0;
int nbr1;
double a;



nbr1 = 0;

Random rndNumbers = new Random();

for (int nbr = 1; nbr < 16; nbr++)
{


nbr1 = nbr1 + 1;

rndNumber = rndNumbers.Next(1, 15);

Console.WriteLine(Convert.ToString(nbr1) + " Nom: {0}", rndNumber);

}

Console.ReadKey();

return;

j'aimerais eliminer les doublons

1 réponse

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
7 déc. 2009 à 10:09
Salut

Pour moi, le plus simple pour ne tirer qu'une seule fois chaque nombre est d'utiliser une liste dans laquelle on ajoute un à un les éléments dans un ordre aléatoire.

Random generateur = new Random();
List nombres = new List();

for(int i = 1; i <= 15; i++)
{
    nombres.Insert(generateur.Next(0, nombres.Count + 1), i);
}
// Maintenant, la liste "nombres" contient les nombres de 1 à 15 dans un ordre aléatoire.

// Puis l'affichage :
for(int i = 1; i <= 15; i++)
{
    Console.WriteLine(i.ToString() + "Nom: " + nombres[i-1].ToString());
}


PS : Dans ta boucle, inutile d'utiliser la variable nbr1, puisqu'elle est toujours égale à nbr...

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -
0
Rejoignez-nous