C#写的按照指数分布产生的随机数
来源:互联网 发布:日本动画片知乎 编辑:程序博客网 时间:2024/06/10 01:50
最近在写一个排队系统的仿真程序,中间因为系统的服务时间和到来时间都是按照指数分布产生的,所以就在网上找了一下,发现没有,也有可以参考的,可是从数学角度分析一下,发现都不是很清楚,哎,求人不如求己,还是自己动手写吧。
代码贴在下面,做点贡献吧,此代码是按照严格的数学关系产生的,在最后附上一个别人写的程序,指出其问题所在。
public static double RandExp(double const_a)//此处的const_a是指数分布的那个参数λ
{
Random rand = new Random(Guid.NewGuid().GetHashCode());
double p = rand.NextDouble();
double temp;
if (const_a != 0)
temp = 1 / const_a;
else
throw new System.InvalidOperationException("除数不能为零!不能产生参数为零的指数分布!");
double randres;
randres = -temp * Math.Log(temp * p*const_a, Math.E);
return randres;
}
此处是别人的写的java中代码,可惜从数学上看写的不是很清楚
public double exponential(Random rng, double mean)
{
return -mean*Math.log( rng.nextDouble() );
}
此代码也是对的,就是他把0~λ的随机数,进行了简化,本来取对数时的参数是(1/const_a)* p*const_a,化简以后就剩下一个p了,即rng.nextDouble() 。
两种方式都是对的,关键是看,传过来的参数是λ,还是指数分布的期望。再有一点就是随机数问题,这个一般系统提供的是一个伪随机,而且默认参数与系统时钟有关。
- C#写的按照指数分布产生的随机数
- 产生按指数分布的随机数----摘自csdn
- 数字信号产生之指数分布的随机数
- C#产生正态分布、泊松分布、指数分布、负指数分布随机数(原创)
- C#产生正态分布、泊松分布、指数分布、负指数分布随机数(原创)
- C#产生需要的随机数
- c#产生随机数的方法
- C#产生随机数的类
- c#自动产生随机数的问题
- C# 不重复随机数的产生算法!
- c#产生指定区间的随机数
- C# 不重复随机数的产生问题
- c#产生指定区间的随机数
- Matlab 用 exprnd 函数生成符合指数分布的随机数
- 关于随机数的产生
- 随机数的产生
- 随机数的产生
- 随机数的产生
- junit入门
- 有关myxls收集的一些资料
- MSSQL异常:JDBC连接SqlServer2000出现"Connection refused: connect"解决方案
- Excel读取与创建方法三: MyXLS
- 报销流水
- C#写的按照指数分布产生的随机数
- tomcat 错误代号详解
- 如何查看Linux操作系统的位数?(qingteng1983 发表于:2007.04.11 16:44 )
- php中this,self,parent三个关键字之间的区别
- 迅速掌握Unix编程
- C++ PRIMER 笔记11
- mysql添加用户并授权
- 算法从不改变容器的大小---理解
- 《精通Unix下C语言编程与项目实践》读书笔记(1)