std::linear_congruential_engine

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

    class UIntType,
    UIntType a,
    UIntType c,
    UIntType m

> class linear_congruential_engine;
(C++11 起)

linear_congruential_engine 是基于线性同余生成器 (LCG) 的随机数引擎。 LCG 拥有以单个整数构成的状态。

LCG 函数的变换算法是 x
i+1
← (ax
i
+c) mod m

下列 typedef 定义有二种常用参数集的随机数引擎:

定义于头文件 <random>
类型 定义
minstd_rand0 std::linear_congruential_engine<std::uint_fast32_t, 16807, 0, 2147483647>

由 Lewis 、 Goodman 及 Miller 发现于 1969 ,由 Park 与 Miller 于 1988 接纳为“最小标准”[编辑]

minstd_rand std::linear_congruential_engine<std::uint_fast32_t, 48271, 0, 2147483647>

较新的“最小标准”,为 Park 、 Miller 及 Stockmeyer 于 1993 推荐[编辑]

目录

[编辑] 成员类型

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

[编辑] 成员函数

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

[编辑] 非成员函数

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

[编辑] 成员对象

constexpr UIntType multiplier
[静态]
乘数项 (a) 。
(公开静态成员常量)
constexpr UIntType increment
[静态]
增量项 (c) 。
(公开静态成员常量)
constexpr UIntType modulus
[静态]
模项 (m) 。
(公开静态成员常量)
constexpr UIntType default_seed
[静态]
默认种子 (1) 。
(公开静态成员常量)