我试图生成一个随机数,但它不应该是一个特定的数字.所以我传递的数字不应该是随机数和必须为函数生成的范围,如果生成的随机数是不应该生成的数字,我重新调用该函数,所以这个花了很长时间,导致我的计划终止.我使用下面的代码,让我知道如何有效地生成随机数而无需等待很长时间甚至没有重新调用该函数.
这里rank1是传递给它的数字,不应该生成它,size1是数字,表示最大可接受值的范围
int rgenerator(int rank1, int size1)
{
int iseed, k;
time_t seconds;
time(&seconds);
iseed=(unsigned int) seconds;
srand(iseed);
k=rand()%size1;
if(k!=rank1)
return k;
else
rgenerator(rank1,size1);
}
Run Code Online (Sandbox Code Playgroud) random ×1