如何在VC++中取得正态分布的随机数?目前在使用VC++进行算法的编程,需要在-1到1区间,取符合标准正态分布的随机数若干,请高手提供具体的code,

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/09 10:26:31

如何在VC++中取得正态分布的随机数?目前在使用VC++进行算法的编程,需要在-1到1区间,取符合标准正态分布的随机数若干,请高手提供具体的code,
如何在VC++中取得正态分布的随机数?
目前在使用VC++进行算法的编程,需要在-1到1区间,取符合标准正态分布的随机数若干,请高手提供具体的code,

如何在VC++中取得正态分布的随机数?目前在使用VC++进行算法的编程,需要在-1到1区间,取符合标准正态分布的随机数若干,请高手提供具体的code,
#include
//生成一组-1到1之间的符合标准正态分布的随机数
//参数:
// double* dRands 用于保存生成的随机数的数组
// int nCount 数组大小,即随机数的个数
void Rand(double* dRands,int nCount)
{
srand(GetTickCount());
for(int i = 0; i < nCount; i++)
{
int nRand = rand();//随机生成0 - 0x7FFF(即0 -- RAND_MAX)的随机数
double dRand = (double)nRand / RAND_MAX * 2.0 - 1.0;//将随机数映射到-1 -- 1区间内
dRands[i] = dRand;
}
}
使用例子:
#define RAND_NUM 100 //100个随机数
//...
double* dRands = new double[RAND_NUM];
Rand(dRands,RAND_NUM);
//...