类模板
<random>

std::linear_congruential_engine

template <class UIntType, UIntType a, UIntType c, UIntType m>class linear_congruential_engine;
线性同余随机数引擎
一个生成无符号整数的伪随机数生成器引擎。

这是标准库中最简单的生成器引擎。它的状态是一个单独的整数值,其转换算法如下:



其中x是当前状态值,ac是各自的模板参数,m是其相应的模板参数(如果大于0),或者numerics_limits<UIntType>::max()1否则。

它的生成算法是状态值的直接复制。

这使得它在处理和内存消耗方面成为一个极其高效的生成器,但根据使用的具体参数,其生成的数字具有不同程度的序列相关性。

由...生成的随机数linear_congruential_engine具有周期m

模板参数

UIntType
无符号整数类型。
引擎生成的数值是该类型。
a
转换算法中使用的乘数参数(a)。
如果m不为零,此参数应小于m
c
转换算法中使用的增量参数(c)。
如果m不为零,此参数应小于m
m
转换算法中使用的模数参数(m),除非此参数为零。
如果此参数为零,则在所有操作中假定的m值为numerics_limits<UIntType>::max()加一(即使UIntType无法表示此值)。

sub_match for string literals (class)


成员类型

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

成员类型定义说明
result_type第一个模板参数 (UIntType)生成的数字的类型。

成员函数


非成员函数


成员常量

成员常量定义说明
multiplier第二个模板参数 (a)每次推进时在转换算法中使用的乘数a)。
increment第三个模板参数 (c)增量c)。
modulus第四个模板参数(m)转换算法中使用的模数m)。
default_seed1u构造或播种时使用的默认种子

另见