Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: 0xDani en 23 Febrero 2013, 21:50 pm



Título: [Aporte][C++11] Numeros aleatorios
Publicado por: 0xDani en 23 Febrero 2013, 21:50 pm
Bueno ya que C++11 es bastante nuevo dejo este ejemplo de generacion de numeros aleatorios:

Código
  1. #include <iostream>
  2. #include <random>
  3. #include <cstdlib>
  4. #include <ctime>
  5.  
  6. int main(int argc, char **argv)
  7. {
  8. std::mt19937 rng;
  9. std::srand(time(NULL));
  10. uint32_t seed = std::rand();
  11. rng.seed(seed);
  12.  
  13. uint32_t stats[10] = {0}, current;
  14.  
  15. std::cout << "*** Random number generation test ***" << std::endl;
  16.  
  17. std::uniform_int_distribution<uint32_t> uint_dist(0, 10);
  18.  
  19. for(size_t i=0; i<56000u; i++)
  20. {
  21.  current = uint_dist(rng);
  22.  stats[current-1]++;
  23.  std::cout << current << ' ' << std::endl;
  24. }
  25.  
  26. std::cout << "*** Number of times for each number ***" << std::endl;
  27.  
  28. size_t i=1;
  29. for(auto x : stats)
  30. {
  31.  std::cout << "$ " << i++ << '\t' << x << std::endl;
  32. }
  33.  
  34. std::cout << "*** End of the test ***" << std::endl;
  35.  
  36. return 0;
  37. }

Los resultados son bastante uniformes