在C中生成两个不同的随机数

在C中生成两个不同的随机数

This question already has answers here:
srand(time(NULL)) doesn't change seed value quick enough [duplicate]
                                
                                    (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