• .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);
                     }
  • 相关阅读:
    log4j/log4e的使用
    数据库主键不应该具有任何业务意义
    孔雀森林,何时开屏
    spring + hibernate
    JAVA的运行时类型识别(RTTI)
    开年感想,2005年总结
    iphone真机(越狱)通讯录导入进模拟器
    xcode中工程引用设置
    UIButton setImage 图片大小选择
    加密技术资源
  • 原文地址:https://www.cnblogs.com/bayonetxxx/p/1635740.html
Copyright © 2020-2023  润新知