類
<random>
std::mt19937_64
typedef mersenne_twister_engine<uint_fast64_t, 64,312,156,31,0xb5026f5aa96619e9, 29,0x5555555555555555, 17,0x71d67fffeda60000, 37,0xfff7eee000000000, 43,6364136223846793005> mt19937_64;
Mersenne Twister 19937 generator (64 bit)
一個具有19937位狀態大小的64位Mersenne Twister偽隨機數生成器。
它是mersenne_twister_engine的一個例項化,具有以下模板引數
引數 | 名稱 | 值 |
UIntType | 結果型別 (result type) | uint_fast64_t |
w | 字大小 (word size) | 64 |
n | 狀態大小 | 312 |
m | 移位大小 | 156 |
r | 掩碼位數 | 31 |
a | XOR掩碼 | 0xb5026f5aa96619e9 |
u | 混淆 u | 29 |
d | 混淆 d | 0x5555555555555555 |
s | 混淆 s | 17 |
和 b | 混淆 b | 0x71d67fffeda60000 |
t | 混淆 t | 37 |
c | 混淆 c | 0xfff7eee000000000 |
l | 混淆 l | 43 |
f | 初始化乘數 | 6364136223846793005 |
成員型別
以下別名是...的成員型別mt19937_64:
成員型別 | 定義 | 說明 |
result_type | uint_fast64_t | 生成的數字的型別。 |
成員常量
成員常量 | 定義 | 說明 |
word_size | 64 | 狀態序列中每個字的位數。 |
state_size | 312 | 狀態序列中的元素數量(遞迴次數)。 |
shift_size | 156 | 扭轉(twist)時用於轉換值的移位大小。 |
mask_bits | 31 | 在每次扭轉(twist)時標記字分隔點的位數。 |
xor_mask | 0xb5026f5aa96619e9 | 在每次扭轉(twist)上用作線性函式的異或掩碼。 |
tempering_u | 29 | 在生成演算法的擾碼(tempering)過程中使用的引數 u 的移位大小。 |
tempering_d | 0x5555555555555555 | 在生成演算法的擾碼(tempering)過程中用作引數 d 的異或掩碼。 |
tempering_s | 17 | 在生成演算法的擾碼(tempering)過程中使用的引數 s 的移位大小。 |
tempering_b | 0x71d67fffeda60000 | 在生成演算法的擾碼(tempering)過程中用作引數 b 的異或掩碼。 |
tempering_t | 37 | 在生成演算法的擾碼(tempering)過程中使用的引數 t 的移位大小。 |
tempering_c | 0xfff7eee000000000 | 在生成演算法的擾碼(tempering)過程中用作引數 c 的異或掩碼。 |
tempering_l | 43 | 在生成演算法的擾碼(tempering)過程中使用的引數 l 的移位大小。 |
initialization_multiplier | 6364136223846793005 | 當使用單個值作為種子時,用於初始化狀態序列的初始化乘數。 |
default_seed | 5489u | 構造或播種時使用的預設種子。 |