Tirage aléatoire sans remise [Résolu]

Messages postés
1
Date d'inscription
jeudi 28 mai 2015
Dernière intervention
28 mai 2015
- - Dernière réponse : cptpingu
Messages postés
3830
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 28 mai 2015 à 15:00
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
Afficher la suite 

Votre réponse

1 réponse

Messages postés
3830
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
19 novembre 2018
0
Merci
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
Commenter la réponse de cptpingu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.