std::linear_congruential_engine
定义于头文件
<random> |
||
template<
class UIntType, |
(C++11 起) | |
linear_congruential_engine
是基于线性同余生成器 (LCG) 的随机数引擎。 LCG 拥有以单个整数构成的状态。
LCG 函数的变换算法是 x
i+1 ← (ax
i+c) mod m 。
下列 typedef 定义有二种常用参数集的随机数引擎:
定义于头文件
<random> |
|
类型 | 定义 |
minstd_rand0 (C++11) |
std::linear_congruential_engine<std::uint_fast32_t, 16807, 0, 2147483647> 由 Lewis、Goodman 及 Miller 发现于 1969,由 Park 与 Miller 于 1988 采纳为“最小标准” |
minstd_rand (C++11) |
std::linear_congruential_engine<std::uint_fast32_t, 48271, 0, 2147483647> 较新的“最小标准”,为 Park、 Miller 及 Stockmeyer 于 1993 推荐 |
成员类型
成员类型 | 定义 |
result_type (C++11) |
引擎所生成的整数类型。若此非无符号整数类型则结果未定义。 |
成员函数
构造与播种 |
|
(C++11)
|
构造引擎 (公开成员函数) |
(C++11)
|
设置引擎的当前状态 (公开成员函数) |
生成 |
|
(C++11)
|
推进引擎状态并返回生成的值 (公开成员函数) |
(C++11)
|
令引擎状态前进指定量 (公开成员函数) |
特征 |
|
[静态]
|
获取输出范围中的最小可能值 (公开静态成员函数) |
[静态]
|
获取输出范围中的最大可能值 (公开静态成员函数) |
非成员函数
(C++11)(C++11)(C++20 中移除)
|
比较两个伪随机数引擎的内部状态 (函数) |
(C++11)
|
执行伪随机数引擎的流输入和输出 (函数) |
成员常量
constexpr UIntType multiplier
[静态] (C++11)
|
乘数项 (a) 。 (公开静态成员常量) |
constexpr UIntType increment
[静态] (C++11)
|
增量项 (c) 。 (公开静态成员常量) |
constexpr UIntType modulus
[静态] (C++11)
|
模项 (m) 。 (公开静态成员常量) |
constexpr UIntType default_seed
[静态] (C++11)
|
默认种子 (1) 。 (公开静态成员常量) |