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);
                     }
  • 相关阅读:
    HTML
    汉企,新的起点
    表格标签
    常用标签
    HTML
    我的未来规划
    世界首富如何炼成? 看盖茨20条箴言
    获取Java项目根目录 N多方法(转载)
    进程间通信——管道
    necessitas
  • 原文地址:https://www.cnblogs.com/bayonetxxx/p/1635740.html
Copyright © 2011-2022 走看看