<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
aXOR掩碼0xb5026f5aa96619e9
u混淆 u29
d混淆 d0x5555555555555555
s混淆 s17
和 b混淆 b0x71d67fffeda60000
t混淆 t37
c混淆 c0xfff7eee000000000
l混淆 l43
f初始化乘數6364136223846793005

成員型別

以下別名是...的成員型別mt19937_64:

成員型別定義說明
result_typeuint_fast64_t生成的數字的型別。

成員函式

作為mersenne_twister_engine型別,它具有以下成員函式

非成員函式

作為mersenne_twister_engine型別,以下運算子過載可以應用於它

成員常量

成員常量定義說明
word_size64狀態序列中每個的位數。
state_size312狀態序列中的元素數量(遞迴次數)。
shift_size156扭轉(twist)時用於轉換值的移位大小。
mask_bits31在每次扭轉(twist)時標記字分隔點的位數。
xor_mask0xb5026f5aa96619e9在每次扭轉(twist)上用作線性函式的異或掩碼。
tempering_u29在生成演算法的擾碼(tempering)過程中使用的引數 u 的移位大小。
tempering_d0x5555555555555555在生成演算法的擾碼(tempering)過程中用作引數 d 的異或掩碼。
tempering_s17在生成演算法的擾碼(tempering)過程中使用的引數 s 的移位大小。
tempering_b0x71d67fffeda60000在生成演算法的擾碼(tempering)過程中用作引數 b 的異或掩碼。
tempering_t37在生成演算法的擾碼(tempering)過程中使用的引數 t 的移位大小。
tempering_c0xfff7eee000000000在生成演算法的擾碼(tempering)過程中用作引數 c 的異或掩碼。
tempering_l43在生成演算法的擾碼(tempering)過程中使用的引數 l 的移位大小。
initialization_multiplier6364136223846793005當使用單個值作為種子時,用於初始化狀態序列的初始化乘數。
default_seed5489u構造或播種時使用的預設種子

另見