1234567891011121314151617181920212223242526272829303132333435363738 |
- //
- // 伪随机数生成器。
- //
- #ifndef RURandomGenerator_hpp
- #define RURandomGenerator_hpp
- ///C++标准库
- #include <vector>
- ///项目代码
- #include "RUDefine.h"
- NS_RU_BEGIN
- class RandomGenerator {
- public:
- // 返回一个随机值
- int generateNumber();
- // 设置种子
- void setSeed(int seed);
- int getSeed();
-
- // 范围里随机一个int
- int randomInRange(int start, int end);
- // 根据权重随机数组的index
- int randomIndexByWeight(const std::vector<int> &weightArray);
- private:
- int _seed = 0; // 种子值
- const int a = 1103515245; // 乘数
- const int c = 12345; // 增量
- const int m = 2147483647; // 模数,通常是一个大质数
- };
- NS_RU_END
- #endif /* RURandomGenerator_hpp */
|