2016-09-28 56 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

相關問題