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