<random>

<random>

std::mt19937

typedef mersenne_twister_engine<uint_fast32_t,  32,624,397,31,0x9908b0df,11,0xffffffff,7,0x9d2c5680,15,0xefc60000,18,1812433253>  mt19937;
梅森旋轉 19937 生成器 (Mersenne Twister 19937 generator)
一個梅森旋轉偽隨機生成器,生成 32 位數字,狀態大小為 19937 位。

它是 mersenne_twister_engine 的一個特化,具有以下模板引數
引數名稱
UIntType結果型別 (result type)uint_fast32_t
w字大小 (word size)32
n狀態大小 (state size)624
m移位大小 (shift size)397
r掩碼位數 (mask bits)31
a異或掩碼 (XOR mask)0x9908b0df
u擾碼 u (tempering u)11
d擾碼 d (tempering d)0xffffffff
s擾碼 s (tempering s)7
和 b擾碼 b (tempering b)0x9d2c5680
t擾碼 t (tempering t)15
c擾碼 c (tempering c)0xefc60000
l擾碼 l (tempering l)18
f初始化乘數 (initialization multiplier)1812433253

成員型別

以下別名是...的成員型別mt19937:

成員型別定義說明
result_typeuint_fast32_t生成的數字的型別。

成員函式

作為 mersenne_twister_engine 型別,它具有以下成員函式

非成員函式

作為 mersenne_twister_engine 型別,以下運算子過載可應用於它

成員常量

成員常量定義說明
word_size32狀態序列中每個的位數。
state_size624狀態序列中的元素數量(遞迴次數)。
shift_size397扭轉(twist)時用於轉換值的移位大小。
mask_bits31在每次扭轉(twist)時標記字分隔點的位數。
xor_mask0x9908b0df在每次扭轉(twist)上用作線性函式的異或掩碼。
tempering_u11在生成演算法的擾碼(tempering)過程中使用的引數 u 的移位大小。
tempering_d0xffffffff在生成演算法的擾碼(tempering)過程中用作引數 d 的異或掩碼。
tempering_s7在生成演算法的擾碼(tempering)過程中使用的引數 s 的移位大小。
tempering_b0x9d2c5680在生成演算法的擾碼(tempering)過程中用作引數 b 的異或掩碼。
tempering_t15在生成演算法的擾碼(tempering)過程中使用的引數 t 的移位大小。
tempering_c0xefc60000在生成演算法的擾碼(tempering)過程中用作引數 c 的異或掩碼。
tempering_l18在生成演算法的擾碼(tempering)過程中使用的引數 l 的移位大小。
initialization_multiplier1812433253當使用單個值作為種子時,用於初始化狀態序列的初始化乘數。
default_seed5489u構造或播種時使用的預設種子

另見