This question already has answers here:
srand(time(NULL)) doesn't change seed value quick enough [duplicate]
(6个答案)
4年前关闭。
我正在尝试在给定范围内在C中生成两个不同的随机数。范围是
但是我的以下代码有时会工作,有时会失败,这背后的原因是什么?
这必须在
在循环中,您重新设定了RNG的种子,但是您应该执行一次。
(6个答案)
4年前关闭。
我正在尝试在给定范围内在C中生成两个不同的随机数。范围是
0 to nk-1
但是我的以下代码有时会工作,有时会失败,这背后的原因是什么?
n1=rand()%nk;
n2=rand()%nk;
while(n1==n2)
{
srand(time(0));
n2=rand()%nk;
}
最佳答案
srand(time(0));
这必须在
loop
之外。在循环中,您重新设定了RNG的种子,但是您应该执行一次。
关于c - 在C中生成两个不同的随机数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32682506/
10-12 16:08