我想实现机能的研究产生随机二进制数,使用以下:如何在C++中生成随机二进制数字?
srand(time(NULL));
int S = rand() % 2;//continuous random variable between 0 and 1
然后:
rand()%2;
不断叫2^20倍......然而 即时通讯没有得到适当的随机数字..任何改进建议?
是否有二进制数字或eqv的数据类型? (而不是声明一个整数)
另外,我见过的srand种子的唯一实现是时间(NULL)或时间(0),有没有办法操纵种子以获得更好的随机数?
您可能希望将标签的“C++”或“c”添加到你的问题,因为我认为这就是你的代码在。 –
你认为什么是“正确的随机数”?你得到什么样的结果? – JJJ
使用'rand()%2;'只挑选刚生成的随机数的低位。一些PRNG会以低位产生模式,这可能是导致问题的原因。通过使用像'if(rand()%10000> = 5000)...'这样的更好的方法避免了这个问题,它使用PRNG输出的更多位。 – rossum