我正在尝试制作一个随机数生成器,它可以非常快速地生成许多新的随机数。我已经尝试过 srand(time(NULL)) 但由于我试图快速生成许多数字,所以这行不通。接下来我尝试了这个:
int main()
{
seed_plus=time(NULL);
int i;
for (i=0; i<10;i++)
{
double R=ran(seed_plus);
printf("%lf\n",R);
seed_plus=seed_plus+1;
}
}
double ran (int seed_plus)
{
srand(seed_plus);
double random_number = (double)random()/(double)RAND_MAX;
return(random_number);
}
这可行,但我希望在“ran”函数中包含“seed_plus=seed_plus+1”。当我在函数内移动该语句时,我得到许多相同的“随机”数字,这让我相信 seed_plus 没有被保存到内存中,因为它不是函数返回的值?
我对C很陌生,所以任何帮助都将不胜感激!