Tirage aléatoire sans remise [Résolu]

Signaler
Messages postés
1
Date d'inscription
jeudi 28 mai 2015
Statut
Membre
Dernière intervention
28 mai 2015
-
Messages postés
3839
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 avril 2021
-
Bonjour
Je suis débutante en C++ et je veux créer un programme qui a partir d'un fichier texte qui contient les identifiants des noeurds (0 jusqu'à 100) et leur position dans le réseau de tirer à chaque fois aléatoirement un noeud ( je ne veux pas qu'il tire le meme noeud plus qu'une fois ) .
Si quelqu'un peut m'aider je serais très reconnaissante . Merci
Cordialement

1 réponse

Messages postés
3839
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 avril 2021
120
Bonjour.

En c++ plusieurs solutions: Tu utilises std::random et tu tires un nombre aléatoire dans un std::vector. Une fois tiré, tu supprimes l'élément du tableau.
Ou alors, plus facile: tu tries le tableau aléatoirement via std::random_shuffle (ça mélange un tableau aléatoirement), puis tu les prends dans l'ordre, via une simple boucle (vu qu'ils sont triés aléatoirement, tu peux les prendres un par un à la suite, c'est équivalent).

Pour résumer la deuxième solution:
- Lis ton fichier via l'opérateur ">>", et std::ifstream.
- Met le résultat dans un std::vector.
- Trie ton std::vector via std::random_shuffle.
- Prend chacun des éléments de ton std::vector à la suite.

__________________________________________________________________________________________________

Améliorez votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature