我已經在C中編寫了一個簡單的隨機數生成器。int l
是下限,int u
是上限。srand(time(NULL))不會快速更改種子值
它工作得很好,但是我有關於播種它的問題。如果我要在一個循環中運行它,time(NULL)
不會快速更改種子值,以防止獲得連續的一系列完全相同的隨機數。
我想知道其他人如何解決這個問題。我在網上找到的所有示例都使用time(NULL)
作爲種子值生成器。
int generateRandom(int l, int u)
{
srand(time(NULL));
int r = rand() % ((u - l) + 1);
r = l + r;
return r;
}
如果我是緊挨着彼此碰撞的幾行代碼,無論是Rand1
和Rand2
將是完全一樣的。
printf("Rand1 = %d\n", generateRandom(10, 46));
printf("Rand2 = %d\n", generateRandom(10, 46));
呃!不要將變量命名爲簡單的'l'!偏好'lb','lower','lowerbound',... – pmg 2011-04-07 08:24:13