Random快速连续产生相同随机数的解决方案

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 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值