在Visual C ++中生成16位随机数的好方法是什么?

时间:2016-10-17 01:07:18

标签: c++ random lfsr

我正在尝试创建一个32位和16位随机数的长(= 2 ^ 31)列表。对于32位,我使用来自implementation of rand()的lfsr113_Bits(),但我不确定获得16位数的质量序列的最佳方法是什么。

不幸的是,rand()中包含的内容有点短,因为根据文档:“rand函数返回0到RAND_MAX(32767)范围内的伪随机整数。

我正在考虑使用lfsr113_Bits()和union来获取16位数字:

union {
    uint16  i16[2];
    uint32  i32;
} u; 

u.i32 = lfsr113_Bits(); 

然后使用来自u.i16 [0]或u.i16 [1]的数字,或者可能来自两者的数字,但我有这样的直觉,即以这种方式获得的序列可能比通过使用本机16位生成器获得的。

了解生成16位随机数的最佳方法是什么?

0 个答案:

没有答案