<random>

std::mt19937_64

typedef mersenne_twister_engine<uint_fast64_t,  64,312,156,31,0xb5026f5aa96619e9,  29,0x5555555555555555,  17,0x71d67fffeda60000,  37,0xfff7eee000000000,  43,6364136223846793005> mt19937_64;
Mersenne Twister 19937 generator (64 bit)
一个具有19937位状态大小的64位Mersenne Twister伪随机数生成器。

它是mersenne_twister_engine的一个实例化,具有以下模板参数
参数名称
UIntType结果类型 (result type)uint_fast64_t
w字大小 (word size)64
n状态大小312
m移位大小156
r掩码位数31
aXOR掩码0xb5026f5aa96619e9
u混淆 u29
d混淆 d0x5555555555555555
s混淆 s17
和 b混淆 b0x71d67fffeda60000
t混淆 t37
c混淆 c0xfff7eee000000000
l混淆 l43
f初始化乘数6364136223846793005

成员类型

以下别名是...的成员类型mt19937_64:

成员类型定义说明
result_typeuint_fast64_t生成的数字的类型。

成员函数

作为mersenne_twister_engine类型,它具有以下成员函数

非成员函数

作为mersenne_twister_engine类型,以下运算符重载可以应用于它

成员常量

成员常量定义说明
word_size64状态序列中每个的位数。
state_size312状态序列中的元素数量(递归次数)。
shift_size156扭转(twist)时用于转换值的移位大小。
mask_bits31在每次扭转(twist)时标记字分隔点的位数。
xor_mask0xb5026f5aa96619e9在每次扭转(twist)上用作线性函数的异或掩码。
tempering_u29在生成算法的扰码(tempering)过程中使用的参数 u 的移位大小。
tempering_d0x5555555555555555在生成算法的扰码(tempering)过程中用作参数 d 的异或掩码。
tempering_s17在生成算法的扰码(tempering)过程中使用的参数 s 的移位大小。
tempering_b0x71d67fffeda60000在生成算法的扰码(tempering)过程中用作参数 b 的异或掩码。
tempering_t37在生成算法的扰码(tempering)过程中使用的参数 t 的移位大小。
tempering_c0xfff7eee000000000在生成算法的扰码(tempering)过程中用作参数 c 的异或掩码。
tempering_l43在生成算法的扰码(tempering)过程中使用的参数 l 的移位大小。
initialization_multiplier6364136223846793005当使用单个值作为种子时,用于初始化状态序列的初始化乘数。
default_seed5489u构造或播种时使用的默认种子

另见