C#里面random类怎么用啊??
需要怎么用啊?我这么弄老编译出错,可能比较低级的错误,高手请指教,谢谢!
(想做一个产生正态分布变量的类)
GaussianRNG.h如下
class GaussianRNG
{
public:
GaussianRNG(void);
int iset;
double gset;
Random r1,r2;
double Next();
~GaussianRNG(void);
};
GaussianRNG.cpp如下
#include "StdAfx.h"
#include ".\gaussianrng.h"
#include <cstdlib>
#include <ctime>
GaussianRNG::GaussianRNG(void)
{
r1 = new Random(unchecked((int)DateTime.Now.Ticks));
r2 = new Random(~unchecked((int)DateTime.Now.Ticks));
iset=0;
}
GaussianRNG::Next()
{
double fac, rsq, v1, v2;
if (iset == 0) {
do {
v1 = 2.0 * r1.NextDouble() - 1.0;
v2 = 2.0 * r2.NextDouble() - 1.0;
rsq = v1*v1 + v2*v2;
} while (rsq >= 1.0 || rsq == 0.0);
fac = Math.Sqrt(-2.0*Math.Log(rsq)/rsq);
gset = v1*fac;
iset = 1;
return v2*fac;
} else {
iset = 0;
return gset;
}
}
GaussianRNG::~GaussianRNG(void)
{
}