随机数Random简记

来源:互联网 发布:装修公司 施工队 知乎 编辑:程序博客网 时间:2024/06/06 07:40

 Random在处理随机数时最常用的,也是最简单的方法,尽管它并不完美,但了解它是非常必须的。所以自己简单总结了一下关于C#中Random的使用。

   首先看看Random这个类到底封装了些什么

1.Next():这个方法是我们最常用的,它有三个重载,从对应的参数名我们也就能够看出其作用。第一个是以int类型区间为范围的产生随机数范围,第二个则是设置其最大范围区间,而第三个则是控制最大和最小区间。(注意:参数范围必须是int类型范围,否则会报错)

2.NextBytes(): 用随机数填充指定字节数组的元素,看例子

static void Main(string[] args)        {                       Random ra = new Random();            byte[] buffer = new byte[5];            ra.NextBytes(buffer);            for (int i = 0; i < buffer.Length; i++)            {                Console.WriteLine(string.Format("buffer[{0}]={1}",i, buffer[i]));            }                      Console.Read();        }


得到结果

3.NextBytes():返回一个介于 0.0 和 1.0 之间的随机数,这个跟js的random就类似了

4.Sample():这个方法我想很多人都不知道,其实我以前也没在意。看到它是protected就知道不是给我们用的,我好奇去反编译看了下,其实这个方法就是给上面.NextBytes()调用的。上图一看就知道。




以上就是Random的核心方法,使用起来也比较简单。其实所有的方法最终都是调用上图中InternalSampe方法去处理的,下面我就把那个方法贴出来让小伙伴们自己看下,其实逻辑不复杂。


既然说到随机数,这边也顺带提一下js中的Math.random()方法,Math.random() 方法可返回介于 0 ~ 1 之间的一个随机数,其实与C#的NextBytes()类似,如果需要将其转换成整型或浮点型则需要自己去处理,下面就是将Math.random()产生的随机数转换为整型的例子

<body>    <form>        <input id="txtrandom" name="txtrandom" type="text" /><br />        <input id="txtbase" name="txtbase" type="text" /><br />         <input type="button" name="btncreate" value="产生随机数" onclick="createrandom();" />    </form>    <script type="text/javascript">        function createrandom() {            var maxval = document.getElementById("txtbase").value;            var num = Math.random() * maxval;            num = parseInt(num, 10);            document.getElementById("txtrandom").value = num;        }    </script></body>



0 0
原创粉丝点击