fork download
  1. #include <vector>
  2. #include <set>
  3. #include <iostream>
  4. #include <random>
  5.  
  6. class Random
  7. {
  8. public:
  9. Random() : rng( rd() ) { }
  10.  
  11. inline int getRandNum( int limit ) { return ( numbers(rng) % limit ); }
  12. std::set<int> getRandSequence(int limit, int n);
  13.  
  14. private:
  15. std::random_device rd;
  16. std::mt19937 rng;
  17. std::uniform_int_distribution<int> numbers;
  18. };
  19.  
  20. std::set<int> Random::getRandSequence(int limit, int n)
  21. {
  22. std::set<int> generatedSequence;
  23. while (generatedSequence.size() < n) //size() for set is O(1) if I'm not mistaken
  24. generatedSequence.insert(getRandNum(limit));
  25. return generatedSequence;
  26. }
  27.  
  28. int main()
  29. {
  30. Random r;
  31. auto sequence = r.getRandSequence(1000, 10);
  32. std::cout << "Seq;uence: " << std::endl;
  33. for (int number : sequence)
  34. std::cout << number << std::endl;
  35. std::cout << "End" << std::endl;
  36.  
  37. return 0;
  38. }
Success #stdin #stdout 0s 3432KB
stdin
Standard input is empty
stdout
Seq;uence: 
65
116
294
378
394
420
532
744
869
892
End