小编Cha*_*ana的帖子

在 C++-11 中使用相同种子在代码的不同部分生成随机数

我试图封装一个类来生成由种子和随机值范围控制的随机数。我想从我的代码的不同部分调用这个类,使用不同的范围,但使用相同的种子。

按照其他帖子的建议(C++-11 中使用 boost 封装的随机数生成器)我实现了以下代码:

我的随机数生成器类:

    #include <random>
    #include <iostream>

    typedef std::mt19937                     ENG;    // Mersenne Twister
    typedef std::uniform_int_distribution<> iDIST;   // Uniform Integer Distribution

    class RNG {
      private:
         ENG eng;
         iDIST idist;

      public:
         iDIST::result_type igen() { return idist(eng); }
         RNG(ENG eng_,int imin,int imax)
         : idist(imin,imax)
         {eng = eng_; }

    };
Run Code Online (Sandbox Code Playgroud)

创建 RNG 类对象并打印随机值的函数:

    void myfunc(ENG eng_,int imin, int imax, int N){
        RNG myirn(eng_,imin,imax);
        for (int i = 0; i < N; i++){
            std::cout << myirn.igen() << std::endl;
        }
        return; …
Run Code Online (Sandbox Code Playgroud)

c++ random c++11 random-seed

3
推荐指数
1
解决办法
1086
查看次数

标签 统计

c++ ×1

c++11 ×1

random ×1

random-seed ×1