Fonction random

Signaler
Messages postés
1
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
4 décembre 2009
-
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
-
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

Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
43
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é ! -