Générer des nombres aléatoires sans les répéter.

Fermé
Iternity Messages postés 32 Date d'inscription mercredi 22 février 2012 Statut Membre Dernière intervention 27 février 2017 - 13 sept. 2016 à 02:15
Iternity Messages postés 32 Date d'inscription mercredi 22 février 2012 Statut Membre Dernière intervention 27 février 2017 - 13 sept. 2016 à 22:16
Bonsoir à tous.
J'apprends le c# et je suis bloqué devant un exercice qui consiste à générer des nombres aléatoires mais sans répéter un nombre deux fois. Par exemple comment choisir successivement 5 nombres entre 1 et 15 sans répéter aucun d'eux.
je précise que j'arrive déjà à générer des nombres aléatoires grâce à la classe Random. Mon problème se situe plutôt sur comment faire pour ne pas répéter les nombres.
MERCI.

1 réponse

Whismeril Messages postés 18279 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 mars 2023 888
Modifié par Whismeril le 13/09/2016 à 07:14
Bonjour

cette question est posée régulièrement, en cherchant un peu tu aurais trouvé.

Une solution (qui est valable pour des nombres, des choux, des patates etc...)

Tu commences par initialiser la collection des objets à "tirer". Cette collection doit être d'un type modulable (pas un tableau, la List<T> convient parfaitement), on va appeler cette collection "possibles"

Ensuite tu fais une boucle Do....While(il reste quelque chose dans possibles)
Dans cette boucle tu fais un random entre 0 et le nombre d'objets dans possible -1. Ce random sera l'index dans possible de l'objet tiré.
Aussitôt tu enlèves cet objet de possibles et ainsi tu ne pourras pas le tirer 2 fois.

Quand j'étais petit, la mer Morte n'était que malade.
George Burns
0
Iternity Messages postés 32 Date d'inscription mercredi 22 février 2012 Statut Membre Dernière intervention 27 février 2017
13 sept. 2016 à 11:22
merci whismeril.
Mais est-ce que tu expliquer un peu avec un petit bout de code c# .
MERCI.
0
Whismeril Messages postés 18279 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 mars 2023 888
13 sept. 2016 à 14:36
Non, le concept de l'exercice est de chercher un peu par soi même.
0
Iternity Messages postés 32 Date d'inscription mercredi 22 février 2012 Statut Membre Dernière intervention 27 février 2017 > Whismeril Messages postés 18279 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 mars 2023
13 sept. 2016 à 22:16
merci!
je continue de chercher.
0