std::mersenne_twister_engine

来自cppreference.com
< cpp‎ | numeric‎ | random
 
 
 
 
 
定义于头文件 <random>
template<

    class UIntType,
    size_t w, size_t n, size_t m, size_t r,
    UIntType a, size_t u, UIntType d, size_t s,
    UIntType b, size_t t,
    UIntType c, size_t l, UIntType f

> class mersenne_twister_engine;
(C++11 起)

mersenne_twister_engine 是基于梅森缠绕器算法的随机数生成器。它产生高质量 UIntType 类型的区间 [0, 2w
-1]
上的无符号整数随机数。

下列类型别名定义拥有二个常用参数集的随机数引擎:

定义于头文件 <random>
类型 定义
mt19937

std::mersenne_twister_engine<std::uint_fast32_t, 32, 624, 397, 31,
                             0x9908b0df, 11,
                             0xffffffff, 7,
                             0x9d2c5680, 15,
                             0xefc60000, 18, 1812433253>

32 位梅森缠绕器,由松本与西村发现于 1998[编辑]

mt19937_64

std::mersenne_twister_engine<std::uint_fast64_t, 64, 312, 156, 31,
                             0xb5026f5aa96619e9, 29,
                             0x5555555555555555, 17,
                             0x71d67fffeda60000, 37,
                             0xfff7eee000000000, 43, 6364136223846793005>

64 位梅森缠绕器,由松本与西村设计于 2000[编辑]

目录

[编辑] 成员类型

成员类型 定义
result_type 引擎所生成的整数类型。若此非无符号整数类型则结果未定义。

[编辑] 成员函数

构造与播种
构造引擎
(公开成员函数) [编辑]
设置引擎的当前状态
(公开成员函数) [编辑]
生成
令引擎状态向前并返回生成值
(公开成员函数) [编辑]
令引擎状态前进指定量
(公开成员函数) [编辑]
特征
[静态]
获取输出范围中的最小可能值
(公开静态成员函数) [编辑]
[静态]
获取输出范围中的最大可能值
(公开静态成员函数) [编辑]

[编辑] 非成员函数

比较两个伪随机数引擎的内部状态
(函数) [编辑]
执行伪随机数引擎的流输入和输出
(函数) [编辑]

[编辑] 成员对象

constexpr size_t word_size
[静态]
模板形参 w ,确定引擎所生成的值范围。
(公开静态成员常量)
constexpr size_t state_size
[静态]
模板形参 n 。引擎状态是 nUIntType
(公开静态成员常量)
constexpr size_t shift_size
[静态]
模板形参 m
(公开静态成员常量)
constexpr size_t mask_bits
[静态]
模板形参 r ,亦称为缠绕值。
(公开静态成员常量)
constexpr UIntType xor_mask
[静态]
模板形参 a ,条件性异或掩码。
(公开静态成员常量)
constexpr size_t tempering_u
[静态]
模板形参 u ,位扰乱(均化)矩阵的第一组分
(公开静态成员常量)
constexpr UIntType tempering_d
[静态]
模板形参 d ,位扰乱(均化)矩阵的第二组分
(公开静态成员常量)
constexpr size_t tempering_s
[静态]
模板形参 s ,位扰乱(均化)矩阵的第三组分
(公开静态成员常量)
constexpr UIntType tempering_b
[静态]
模板形参 b ,位扰乱(均化)矩阵的第四组分
(公开静态成员常量)
constexpr size_t tempering_t
[静态]
模板形参 t ,位扰乱(均化)矩阵的第五组分
(公开静态成员常量)
constexpr UIntType tempering_c
[静态]
模板形参 c ,位扰乱(均化)矩阵的第六组分
(公开静态成员常量)
constexpr size_t tempering_l
[静态]
模板形参 l ,位扰乱(均化)矩阵的第七组分
(公开静态成员常量)
constexpr UIntType initialization_multiplier
[静态]
模板形参 f
(公开静态成员常量)
constexpr UIntType default_seed
[静态]
常数值 5489u
(公开静态成员常量)

[编辑] 注意

要求第 10000 次连续调用默认构造的 std::mt19937 生成值 4123659995

要求第 10000 次连续调用默认构造的 std::mt19937_64 生成值 9981545732273789042