如何在C++中一次性生成不同的随机数?如何在C++中一次生成不同的随机数?
现在我用
while (flag)
{
....
srand(time(NULL));
int rndSig = rand() % 10 + 1;
......
}
但在某一时刻所有的数字都是平等的。我如何在while循环中生成不同的数字?
如何在C++中一次性生成不同的随机数?如何在C++中一次生成不同的随机数?
现在我用
while (flag)
{
....
srand(time(NULL));
int rndSig = rand() % 10 + 1;
......
}
但在某一时刻所有的数字都是平等的。我如何在while循环中生成不同的数字?
在使用它之前,不要直接给随机数发生器播种。在循环之前使用srand
一次。
像这样:
srand(time(NULL));
while (flag)
{
....
int rndSig = rand() % 10 + 1;
......
}
如果你需要不同的分布,或更好的随机性,你需要使用一个库。
你的意思是什么都平等。你有什么会产生[1-10]之间的随机数字。 – 2011-04-03 08:00:37
@Gunner:不会的。在rand()之前使用srand()会导致在短时间内生成的所有数字都相同。 – jv42 2011-04-03 08:06:13