C#产生任意任意区间随机数
在我们平常写程序的时候,会需要写随机数的生成,一般我们都会直接考虑用现成的函数来实现,例如
Random.Next()可以产生一定范围的整数
Random.NextDouble()可以产生0.1-1的浮点数
这些都是正数,但是如果我们想再任意区间内取得随机数,例如:我要产生比如-10到10范围内的浮点数,那我们因该怎么做?
一般的的办法都会这样
Random.NextDouble()* (10 – 0.1) + 0.1产生0到10的浮点数,然后随机取负号。
但是我们有没有更加简便的方式来解决的这个问题呢?Xushine研究院今天给出一点建议吧.
我们可以这样的写出:
static double getDoubleRnd(int iMin, int iMax)
{
double _r = 0;
Random ran = new Random(Guid.NewGuid().GetHashCode());
if (iMin <= iMax)
_r = ran.Next(iMin, iMax)*ran.NextDouble();
return _r;
}
再这个上界和下界中放入要取值的范围就可以轻松的实现随机数了
评论被关闭。