utiliser boost pour générer des variables aléatoires

utiliser boost pour générer des variables aléatoires - C++ - Programmation

Marsh Posté le 14-05-2014 à 11:45:21    

Bonjour,
 
comment utiliser boost pour générer des nombre aléatoires entre 0 et 10?
 
Merci d'avance.

Reply

Marsh Posté le 14-05-2014 à 11:45:21   

Reply

Marsh Posté le 14-05-2014 à 22:51:05    

Si tu avais lu la doc tu saurais que :
 

Code :
  1. #include <iostream>
  2. #include "boost/random.hpp"
  3. #include "boost/generator_iterator.hpp"
  4. using namespace std;
  5. int main() {
  6.       typedef boost::mt19937 RNGType;
  7.       RNGType rng;
  8.       boost::uniform_int<> one_to_ten( 1, 10 );
  9.       boost::variate_generator< RNGType, boost::uniform_int<> >
  10.                     roller(rng, one_to_ten);
  11.         cout << roller() << endl;
  12.    }
  13. }

Reply

Marsh Posté le 15-05-2014 à 12:21:28    

Et un petit exemple en C++11 que j'avais déjà posté sur ce forum:
 

Code :
  1. // uniform_int_distribution
  2. #include <iostream>
  3. #include <random>
  4. int main()
  5. {
  6.   const int minimum = 1;
  7.   const int maximum = 10;
  8.   std::uniform_int_distribution<int> distribution(minimum, maximum);
  9.   // entiers répartis au hasard de manière uniforme
  10.   std::default_random_engine generator;
  11.   int repartition[10] = {0};
  12.   const auto tirages = 2000; // nb de tirages
  13.   for (auto i = 0; i < tirages; ++i) {
  14.     int number = distribution(generator);
  15.     repartition[number-1]++;
  16.     // std::cout << number << std::endl;
  17.   }
  18.   std::cout << std::endl << "Repartition" << std::endl;
  19.   for (int i = 0; i < 10; ++i) {
  20.       std::cout << i+1 << " : " << repartition[i] << std::endl;
  21.   }
  22.   return 0;
  23. }


 
A+,


---------------
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