<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构造或播种时使用的默认种子

另见