Random 是否有任何有效的随机字节生成器(不使用分区)? 我试图用C++生成一些8位随机数,不想使用除法(如RAND())% 8或任何刻度方法。

Random 是否有任何有效的随机字节生成器(不使用分区)? 我试图用C++生成一些8位随机数,不想使用除法(如RAND())% 8或任何刻度方法。,random,generator,Random,Generator,我在网上找到的一个算法是 它是一个32位随机数生成器,没有分区。对于这些随机数,我试图提取其中较低或较高的8位,以便获得一些随机字节,但这似乎不起作用,因为这些位不是那么随机 是否有任何技巧可以解决此问题,或者是否有其他算法可以解决此问题?对32位随机整数的四个字节进行异或运算如何?是否有任何特定原因需要避免除法/模运算?是否只是试图避免使用“%8”?如果是这样,编译器无论如何都不会使用除法。编译器对于2的幂很聪明,并且会使用“&7”,因为我正在做一些系统级的实验。除法太慢了。是的,我尝试了&7

我在网上找到的一个算法是

它是一个32位随机数生成器,没有分区。对于这些随机数,我试图提取其中较低或较高的8位,以便获得一些随机字节,但这似乎不起作用,因为这些位不是那么随机


是否有任何技巧可以解决此问题,或者是否有其他算法可以解决此问题?

对32位随机整数的四个字节进行异或运算如何?

是否有任何特定原因需要避免除法/模运算?是否只是试图避免使用“%8”?如果是这样,编译器无论如何都不会使用除法。编译器对于2的幂很聪明,并且会使用“&7”,因为我正在做一些系统级的实验。除法太慢了。是的,我尝试了&7,但结果不是那么随机,因为它基本上是提取低位。谢谢你的回答。你的意思是用高8位对低8位进行异或吗?我想我会继续用低8位。谢谢大家。