Hello,
I am trying to generate a vector of random numbers using the following code. However, every time I execute the code, the output vector is the same as previous run! Can you please help? Thank you in advance. - Afshin
int N = 30;
double r;
VSLStreamStatePtr stream;
int errcode;
double a=0,sigma=0.5;
/***** Initialize *****/
errcode = vslNewStream( &stream, VSL_BRNG_MT2203, 10000 );
printf("err = %i\n",errcode);
/***** Call RNG *****/
errcode = vdRngGaussian( VSL_RNG_METHOD_GAUSSIAN_BOXMULLER, stream, N, r, a, sigma );
printf("err = %i\n",errcode);
vslDeleteStream(&stream);
for (i=0; i<N; i++){
printf("r = %f\n",r);
}
Hi Afshin,
This result is expected to be the same from run to run.
If you want the result to be different every time, you will need to change the seed value for each run. You can use the time function to do that.
Hope this helps!
Best Regards,
Khang
链接已复制
Hi Afshin,
This result is expected to be the same from run to run.
If you want the result to be different every time, you will need to change the seed value for each run. You can use the time function to do that.
Hope this helps!
Best Regards,
Khang
Thank you, Khang! You always provide best answers.
Hi Afshin,
We are here to help users make the best out of Intel(r) MKL.
Please do not hesitate to contact us should you have any questions about Intel(R) MKL.
Best Regards,
Khang