• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c#随机数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

    计算机不可能产生完全随机的数字,所谓的随机数发生器都是通过一定的算法对事先选定的随机种子做复杂的运算,用产生的结果来近似的模拟完全随机数,这种随机数被称 作伪随机数。伪随机数是以相同的概率从一组有限的数字中选取的。所选数字并不具有完全的随机性,但是从实用的角度而言,其随机程度已足够了。伪随机数的选 择是从随机种子开始的,所以为了保证每次得到的伪随机数都足够地“随机”,随机种子的选择就显得非常重要。如果随机种子一样,那么同一个随机数发生器产生 的随机数也会一样。一般地,我们使用同系统时间有关的参数作为随机种子,这也是.net Framework中的随机数发生器默认采用的方法。

     我们可以使用两种方式初始化一个随机数发生器:

   第一种方法不指定随机种子,系统自动选取当前时间作为随机种子:

     1 Random ran = new Random(); 

     第二种方法可以指定一个int型参数作为随机种子:

 1  private int numElements;
 2                  public void Insert(int item) 
 3                 {
 4                      arr[numElements] = item;
 5                      numElements++;
 6                  }
 7                 Random ran = new Random(100);// 使用指定的种子值初始化 System.Random 类的新实例。
 8                 for (int i = 0; i < 1000; i++)
 9                 {
10                     nums.Insert(ran.Next(0, 100));//ran.Next(0,100)产生的随机数传递给了inter,
11 //返回的随机数的下界(随机数可取该下界值)。
12 //maxValue:
13 //返回的随机数的上界(随机数不能取该上界值)。 maxValue 必须大于或等于 minValue。
14 //返回结果:
15 //一个大于等于 minValue 且小于 maxValue 的 32 位带符号整数,即:返回的值范围包括 minValue 但不包括 maxValue。
16 //如果 minValue 等于 maxValue,则返回 minValue。

      默认情况下,C#中的伪随机数生成器Random是根据系统时间来设置其种子的。若我们采用默认的方式,对Random进行初始化的时候不赋予任何参数,其随机种子便采用系统时间。如果我们用循环一次生成多个随机数,由于CPU运算速度太快了,所以每次取到的都是同一个时间,即生成的随机数都会一样,测试各种算法排序的时间长短,需要不同的数组元素,因此每次生成随机数之前需要更换随机数种子。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#笔记之又谈装箱与拆箱(boxingandunboxing)发布时间:2022-07-10
下一篇:
C#如何创建一个xml文件?并写入指定内容?发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap