类
<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 |
a | XOR掩码 | 0xb5026f5aa96619e9 |
u | 混淆 u | 29 |
d | 混淆 d | 0x5555555555555555 |
s | 混淆 s | 17 |
和 b | 混淆 b | 0x71d67fffeda60000 |
t | 混淆 t | 37 |
c | 混淆 c | 0xfff7eee000000000 |
l | 混淆 l | 43 |
f | 初始化乘数 | 6364136223846793005 |
成员类型
以下别名是...的成员类型mt19937_64:
成员类型 | 定义 | 说明 |
result_type | uint_fast64_t | 生成的数字的类型。 |
成员常量
成员常量 | 定义 | 说明 |
word_size | 64 | 状态序列中每个字的位数。 |
state_size | 312 | 状态序列中的元素数量(递归次数)。 |
shift_size | 156 | 扭转(twist)时用于转换值的移位大小。 |
mask_bits | 31 | 在每次扭转(twist)时标记字分隔点的位数。 |
xor_mask | 0xb5026f5aa96619e9 | 在每次扭转(twist)上用作线性函数的异或掩码。 |
tempering_u | 29 | 在生成算法的扰码(tempering)过程中使用的参数 u 的移位大小。 |
tempering_d | 0x5555555555555555 | 在生成算法的扰码(tempering)过程中用作参数 d 的异或掩码。 |
tempering_s | 17 | 在生成算法的扰码(tempering)过程中使用的参数 s 的移位大小。 |
tempering_b | 0x71d67fffeda60000 | 在生成算法的扰码(tempering)过程中用作参数 b 的异或掩码。 |
tempering_t | 37 | 在生成算法的扰码(tempering)过程中使用的参数 t 的移位大小。 |
tempering_c | 0xfff7eee000000000 | 在生成算法的扰码(tempering)过程中用作参数 c 的异或掩码。 |
tempering_l | 43 | 在生成算法的扰码(tempering)过程中使用的参数 l 的移位大小。 |
initialization_multiplier | 6364136223846793005 | 当使用单个值作为种子时,用于初始化状态序列的初始化乘数。 |
default_seed | 5489u | 构造或播种时使用的默认种子。 |