RURandomGenerator.hpp 764 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. //
  2. // 伪随机数生成器。
  3. //
  4. #ifndef RURandomGenerator_hpp
  5. #define RURandomGenerator_hpp
  6. ///C++标准库
  7. #include <vector>
  8. ///项目代码
  9. #include "RUDefine.h"
  10. NS_RU_BEGIN
  11. class RandomGenerator {
  12. public:
  13. // 返回一个随机值
  14. int generateNumber();
  15. // 设置种子
  16. void setSeed(int seed);
  17. int getSeed();
  18. // 范围里随机一个int
  19. int randomInRange(int start, int end);
  20. // 根据权重随机数组的index
  21. int randomIndexByWeight(const std::vector<int> &weightArray);
  22. private:
  23. int _seed = 0; // 种子值
  24. const int a = 1103515245; // 乘数
  25. const int c = 12345; // 增量
  26. const int m = 2147483647; // 模数,通常是一个大质数
  27. };
  28. NS_RU_END
  29. #endif /* RURandomGenerator_hpp */