如何在c ++中一次生成不同的随机数?

时间:2011-04-03 07:59:25

标签: c++ random std

如何在c ++中一次生成不同的随机数?

现在我用

while ( flag )
{
   ....
   srand( time( NULL) ); 
   int rndSig = rand() % 10 + 1;
   ......
}

但有一刻,所有数字都是平等的。如何在while循环中生成不同的数字?

3 个答案:

答案 0 :(得分:7)

将srand移动到while循环之外。你只需要调用一次,rand()保持静态状态。

答案 1 :(得分:5)

在使用随机生成器之前,不要直接播种。只需在循环前使用srand一次。

答案 2 :(得分:4)

像这样:

srand( time( NULL) ); 
while ( flag )
{
   ....
   int rndSig = rand() % 10 + 1;
   ......
}

如果您需要不同的分发或更好的随机性,则需要使用库。