Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drand48是否始终为第一个元素返回0?(C)_C_List - Fatal编程技术网

Drand48是否始终为第一个元素返回0?(C)

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

出于某种原因,当我尝试创建一个数组并用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();
    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
一次