類
<random>
std::mt19937
typedef mersenne_twister_engine<uint_fast32_t, 32,624,397,31,0x9908b0df,11,0xffffffff,7,0x9d2c5680,15,0xefc60000,18,1812433253> mt19937;
梅森旋轉 19937 生成器 (Mersenne Twister 19937 generator)
一個梅森旋轉偽隨機生成器,生成 32 位數字,狀態大小為 19937 位。
它是 mersenne_twister_engine 的一個特化,具有以下模板引數
引數 | 名稱 | 值 |
UIntType | 結果型別 (result type) | uint_fast32_t |
w | 字大小 (word size) | 32 |
n | 狀態大小 (state size) | 624 |
m | 移位大小 (shift size) | 397 |
r | 掩碼位數 (mask bits) | 31 |
a | 異或掩碼 (XOR mask) | 0x9908b0df |
u | 擾碼 u (tempering u) | 11 |
d | 擾碼 d (tempering d) | 0xffffffff |
s | 擾碼 s (tempering s) | 7 |
和 b | 擾碼 b (tempering b) | 0x9d2c5680 |
t | 擾碼 t (tempering t) | 15 |
c | 擾碼 c (tempering c) | 0xefc60000 |
l | 擾碼 l (tempering l) | 18 |
f | 初始化乘數 (initialization multiplier) | 1812433253 |
成員型別
以下別名是...的成員型別mt19937:
成員型別 | 定義 | 說明 |
result_type | uint_fast32_t | 生成的數字的型別。 |
成員常量
成員常量 | 定義 | 說明 |
word_size | 32 | 狀態序列中每個字的位數。 |
state_size | 624 | 狀態序列中的元素數量(遞迴次數)。 |
shift_size | 397 | 扭轉(twist)時用於轉換值的移位大小。 |
mask_bits | 31 | 在每次扭轉(twist)時標記字分隔點的位數。 |
xor_mask | 0x9908b0df | 在每次扭轉(twist)上用作線性函式的異或掩碼。 |
tempering_u | 11 | 在生成演算法的擾碼(tempering)過程中使用的引數 u 的移位大小。 |
tempering_d | 0xffffffff | 在生成演算法的擾碼(tempering)過程中用作引數 d 的異或掩碼。 |
tempering_s | 7 | 在生成演算法的擾碼(tempering)過程中使用的引數 s 的移位大小。 |
tempering_b | 0x9d2c5680 | 在生成演算法的擾碼(tempering)過程中用作引數 b 的異或掩碼。 |
tempering_t | 15 | 在生成演算法的擾碼(tempering)過程中使用的引數 t 的移位大小。 |
tempering_c | 0xefc60000 | 在生成演算法的擾碼(tempering)過程中用作引數 c 的異或掩碼。 |
tempering_l | 18 | 在生成演算法的擾碼(tempering)過程中使用的引數 l 的移位大小。 |
initialization_multiplier | 1812433253 | 當使用單個值作為種子時,用於初始化狀態序列的初始化乘數。 |
default_seed | 5489u | 構造或播種時使用的預設種子。 |