Drand48是否始终为第一个元素返回0?(C)
出于某种原因,当我尝试创建一个数组并用drand48生成的随机数填充它时,第一个元素总是0。代码的运行方式类似于./exec size。有人能帮我吗Drand48是否始终为第一个元素返回0?(C),c,list,C,List,出于某种原因,当我尝试创建一个数组并用drand48生成的随机数填充它时,第一个元素总是0。代码的运行方式类似于./exec size。有人能帮我吗 int matrixSize = atoi(argv[1]); double vect[matrixSize]; printf("THIS IS NVECTOR-----------------------\n"); for(k = 0; k < matrixSize; ++k){ vect[k] = drand48(); p
int matrixSize = atoi(argv[1]);
double vect[matrixSize];
printf("THIS IS NVECTOR-----------------------\n");
for(k = 0; k < matrixSize; ++k){
vect[k] = drand48();
printf("%f\n", vect[k]);
}
srand48(time(NULL));
intmatrixsize=atoi(argv[1]);
双向量[矩阵大小];
printf(“这是Invector-----------------\n”);
对于(k=0;k
在调用drand48()
之前,需要调用srand48()
。从t:
srand48()、seed48()和lcong48()函数是初始化函数
函数,在使用drand48()之前应调用其中一个函数,
lrand48()或mrand48()
在调用
drand48()
之前,需要移动srand48()
。在对srand48()
进行任何特定调用之后,drand48()
将给出相同的序列
因此,利用时间获取不可预测的
srand48()
seed将带来随机性的总体外观。但是,只有在重复调用drand48()
可能的重复之前执行此操作,我很惊讶您没有看到数组总是相同的(甚至超出第一个元素)。还要确保只调用srand48
一次