多くの新しい乱数を非常に迅速に生成する乱数ジェネレーターを作成しようとしています。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にかなり慣れていないので、助けていただければ幸いです!