Random快速连续产生相同随机数的解决方案:
第一种方式:使用DateTime.Now.Ticks生成随机数;
优缺点:如果触发Random函数间隔时间很短,就有可能造成产生一样的随机数
第二种方式: 使用Thread.Sleep(),在每次循环产生随机数前延迟几个毫秒,防止由于计算机运算速度过快,产生伪随机数;
优缺点:生成速度慢,不适合快速生成大量随机数
第三种方式:使用RNGCryptoServiceProvider生成Seed;加密随机数生成器生成Random的Seed种子
缺点:生成速度较慢,但是好于第二种;
优点:使用RNGCryptoServiceProvider还可以生成随机字符串;
第四种方式:使用Guid生成Seed;
优缺点:生成速度快,适合生成大量随机数;
另外,生成随机数 要在循环外New对象,然后循环内使用Next即可。如果在循环内New,会出现相近随机的几率较大。
--------------------- 感谢原创作者分享---------------------
作者:cjolj
来源:CSDN
原文:https://blog.csdn.net/cjolj/article/details/59484045
版权声明:本文为博主原创文章,转载请附上博文链接!