fork download
  1. #include <iostream>
  2. #include <random>
  3. #include <string>
  4.  
  5. int FirstNumber(unsigned long n) {
  6. while (n >= 10)
  7. n /= 10;
  8.  
  9. return n;
  10. }
  11.  
  12. int main() {
  13. int histo[10];
  14. std::random_device rd;
  15. std::mt19937_64 gen(rd());
  16.  
  17. for (int i = 0; i < 10000000; ++i) {
  18. std::uniform_int_distribution<unsigned long> upper(1, 100000);
  19. unsigned long u = upper(gen), l = upper(gen);
  20. if (l >= u) { l = l ^ u; u = l ^ u; l = l ^ u; }
  21. std::uniform_int_distribution<unsigned long> dist(l, u);
  22.  
  23. histo[FirstNumber(dist(gen))]++;
  24.  
  25. }
  26.  
  27. int max = 0;
  28. for (int i = 0; i < 10; ++i)
  29. if (max < histo[i]) max = histo[i];
  30.  
  31. for (int i = 0; i < 10; ++i)
  32. std::cout << i << " " << std::string(90 * histo[i] / max, '*') << std::endl;
  33. }
Success #stdin #stdout 3.59s 3476KB
stdin
Standard input is empty
stdout
0 
1 ******************************************************
2 ************************************************************************
3 ***********************************************************************************
4 *****************************************************************************************
5 ******************************************************************************************
6 *************************************************************************************
7 **************************************************************************
8 *********************************************************
9 ***************************