zoukankan      html  css  js  c++  java
  • .net中使用随机函数

    原文:http://forum.byr.edu.cn/wForum/disparticle.php?boardName=dotNET&ID=980
    随机函数生成的随机数总是一个值,而单步跟踪的时候又能够出现随机的效果,一直很奇怪。代码大致如下所示:
                     for(int i=0;i<10;i++)
                     {
                           Random random=new Random();
                           int index=random.Next(10);
                     }
        .net的随机函数与随机数种子seed有关,也就是传给Random构造函数的参数。如上面代码所示,在构造Random 时采用了默认构造函数,系统就会使用当前系统时间作为随机数种子,然而计算机运行上述代码非常的快,系统时间没有发生变化,也就是说随机数种子不会变,这 样出来得随机数就是一样的了。
         解决这个问题的方法就是,每次循环要给Random构造函数传递一个不同的种子。网上给的比较简单的方法是,每次产生一个新的Guid对象,然后用它的散列值(每个Guid对象的散列值是不同的)作为构造函数的参数,如下所示:
                    for(int i=0;i<10;i++)
                     {
                           Random random=new Random(Guid.NewGuid().GetHashCode());
                           int index=random.Next(10);
                     }
  • 相关阅读:
    Asp.net2.0页面执行顺序
    [转帖]常用的SQL语句
    [转帖]黑客技术经典问题FAQ
    面试的一些心得
    较全的正则表达式
    很好的创业建议
    [转帖]如何让菜单项与工具栏按钮对应
    源码下载网站
    [转帖]一段测试代码
    GOF设计模式趣解(23种设计模式) <转自百度空间>
  • 原文地址:https://www.cnblogs.com/bayonetxxx/p/1635740.html
Copyright © 2011-2022 走看看