如何在c中生成两个随机数组



我想要生成两个随机数组不管我试了什么,但这两张表总是相同的

double *init_rand_w(double tableau[],int tailleTableau) {
//double *tableau=malloc(tailleTableau*sizeof(double));
srand(time(NULL));
for (int i = 0 ; i < tailleTableau ; i++)
{
tableau[i]=((double)rand())/((double)RAND_MAX);
}
return  tableau;
}
int main()
{
double *t1=(double*)malloc(sizeof(double)*10);
double *t2=(double*)malloc(sizeof(double)*10);
t1=init_rand_w(t1,5);
t2=init_rand_w(t2,5);
shuffle(t2,5);
printf("***************************n");
for (int x = 0; x <5; x++)
{
printf("%f  ,  %f n", t1[x],t2[x]);
}
}

您应该在程序开始时只调用srand一次。它初始化随机数生成器的状态。你现在调用它两次,每次调用它时都可能给它相同的种子值(因为你的程序运行所需的时间不到一秒钟(,所以你会得到相同的随机数序列。

最新更新