C#里面random类怎么用啊??

arizonadu 2006-02-01 08:33:19
需要怎么用啊?我这么弄老编译出错,可能比较低级的错误,高手请指教,谢谢!
(想做一个产生正态分布变量的类)
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)
{
}
...全文
218 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChrisAK 2006-02-01
  • 打赏
  • 举报
回复
你这个是C++吧?你那个Random类是.net里的?
.net 下的类必须声明为指针(新的C++/CLI为Handle ^)所以Random r1=new Random(~unchecked((int)DateTime.Now.Ticks));就100%的错了.在编译时要加/clr参数.最后是在开头要有最起码的#using <mscorlib.dll>
#using <System.dll>
using namespace System;

zhy0101 2006-02-01
  • 打赏
  • 举报
回复
什么地方出错?
yangzhenhai 2006-02-01
  • 打赏
  • 举报
回复
你这个好象是C++???

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧