Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Boost 获得种子';来自升压随机mt19937发生器的s值_Boost_Random_Seed - Fatal编程技术网

Boost 获得种子';来自升压随机mt19937发生器的s值

Boost 获得种子';来自升压随机mt19937发生器的s值,boost,random,seed,Boost,Random,Seed,我正在使用boost::random::mt19937生成器,我需要打印它的种子以用于调试(以便重现我的测试) 如何获取种子?与其尝试从mt19937中提取您认为的种子,不如在两次运行中明确设置种子,以实现再现性。有关设置种子的示例,请参见boost's,主管道中约20行。该评论指出,如果使用std::time(0)快速连续地基于时间对两个生成器进行播种,则可能会无意中导致两个生成器的相关结果。在您的例子中,您实际上需要相同的流,因此您希望将种子设置为显式值,例如54321,而不是使用std::

我正在使用boost::random::mt19937生成器,我需要打印它的种子以用于调试(以便重现我的测试)
如何获取种子?

与其尝试从mt19937中提取您认为的种子,不如在两次运行中明确设置种子,以实现再现性。有关设置种子的示例,请参见boost's,主管道中约20行。该评论指出,如果使用
std::time(0)
快速连续地基于时间对两个生成器进行播种,则可能会无意中导致两个生成器的相关结果。在您的例子中,您实际上需要相同的流,因此您希望将种子设置为显式值,例如
54321
,而不是使用
std::time(0)
。相同的种子设定从生成器生成相同的输出。

使用C++11功能

std::random_device rd;
unsigned long seed = rd();
std::cout << "seed = " << seed << std::endl;

std::mt19937 engine(seed);
std::随机设备rd;
无符号长种子=rd();

std::cout“你认为是mt19937的种子”-这将是生成器的内部状态,对于completenessTnx来说,这样的API不存在是非常恼人的,但我会振作起来:)我不认为我的旧GNU编译器(我认为它是4.4.4)支持C++11特性。。。