2016-09-28 55 views

回答

5

In [rand.eng.mars] 1-5该段落基本总结了mersenne twister algorithm的实现细节。

std::mt19937仅仅是

using mt19937 = 
     mersenne_twister_engine<uint_fast32_t, 
     32,624,397,31,0x9908b0df,11,0xffffffff,7,0x9d2c5680,15,0xefc60000,18,1812433253>; 

一个typedef和所有的标准说,有关的预期结果是:

要求的行为:10000次一 默认构造的对象连续调用类型mt19937应产生值 4123659995.

没有其他保证。

但是,因为std::mersenne_twister_engine需要遵循mersenne twister PRNG实施,所以它的实施明确定义的。

+0

对于不熟悉随机生成器算法(像我一样)的人来说,这听起来像一个非常奇怪的要求。 – bolov

+1

@bolov在rand.eng.mars中读取1-5,基本上是mersenne twister PRNG的实现摘要。 –

+0

@bolov这个要求并不是很有用,因为std :: mersenne_twister_engine和它的默认种子的行为已经被标准定义好了。 – Holt

相关问题