如何在c ++中一次生成不同的随机数?
现在我用
while ( flag )
{
....
srand( time( NULL) );
int rndSig = rand() % 10 + 1;
......
}
但有一刻,所有数字都是平等的。如何在while循环中生成不同的数字?
答案 0 :(得分:7)
将srand移动到while循环之外。你只需要调用一次,rand()保持静态状态。
答案 1 :(得分:5)
在使用随机生成器之前,不要直接播种。只需在循环前使用srand
一次。
答案 2 :(得分:4)
像这样:
srand( time( NULL) );
while ( flag )
{
....
int rndSig = rand() % 10 + 1;
......
}
如果您需要不同的分发或更好的随机性,则需要使用库。