小编Pie*_*der的帖子

在 C++11 中保存和加载随机数生成器状态

之前(stackoverflow)已经问过这个问题,但(接受的)答案并不令人满意。

以下示例保存并加载状态,但取决于生成的值的数量,它是否起作用:

#include <fstream>
#include <iostream>
#include <random>
#include <cassert>

int main()
{
  const int preN = 4;
  const int middleN = 0;

  // initialize randGen
  std::mt19937 randGen1;
  std::normal_distribution<double> distribution1;


  // print some initial random numbers
  for (int i=0;i<preN;++i)
    std::cout << distribution1(randGen1)<<" ";

  // save state
  std::cout << std::endl << "Saving...\n";
  {
    std::ofstream fout("seed.dat");
    fout << randGen1;
  }

  // maybe advance randGen1
  for (int i=0;i<middleN;++i)
    std::cout << distribution1(randGen1)<<" ";

  // load saved state into randGen2 
  std::cout << std::endl …
Run Code Online (Sandbox Code Playgroud)

c++ c++-standard-library c++11 mt19937

5
推荐指数
1
解决办法
1722
查看次数

标签 统计

c++ ×1

c++-standard-library ×1

c++11 ×1

mt19937 ×1