Tirage aleatoire sans remise

Tirage aleatoire sans remise - C++ - Programmation

Marsh Posté le 28-05-2015 à 14:59:13    

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

Reply

Marsh Posté le 28-05-2015 à 14:59:13   

Reply

Marsh Posté le 28-05-2015 à 22:44:50    

En C++ 11, en faisant ça sur un vecteur.

Code :
  1. #include <numeric>
  2. #include <random>
  3. #include <algorithm>
  4. #include <iterator>
  5. #include <iostream>
  6. int main()
  7. {
  8.     // vecteur de 101 ints, rempli de 0 a 100
  9.     std::vector<int> nodes(101);
  10.     std::iota(nodes.begin(), nodes.end(), 0);
  11.     // on permute au hasard les éléments du vecteur
  12.     std::random_shuffle(nodes.begin(), nodes.end());
  13.     // on imprime en sortie, pour visualiser la permutation
  14.     std::copy(nodes.begin(), nodes.end(), std::ostream_iterator<int>(std::cout, " " ));
  15.     std::cout << "\n";
  16. }


 
A+,


Message édité par gilou le 28-05-2015 à 22:47:39

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed