類模板
<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構造或播種時使用的預設種子

另見