惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
I
InfoQ
U
Unit 42
WordPress大学
WordPress大学
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Apple Machine Learning Research
Apple Machine Learning Research
J
Java Code Geeks
月光博客
月光博客
D
Docker
Stack Overflow Blog
Stack Overflow Blog
D
DataBreaches.Net
阮一峰的网络日志
阮一峰的网络日志
Blog — PlanetScale
Blog — PlanetScale
V
Visual Studio Blog
博客园 - 聂微东
A
About on SuperTechFans
腾讯CDC
Jina AI
Jina AI
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
博客园 - 【当耐特】
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
M
MIT News - Artificial intelligence

博客园 - 永不放弃-Jack wu

在IIS7下,利用Intelligencia.UrlRewriter进行URLReWrite Sql Service 常用函数 select时锁定记录问题 实现一个用户取过的数据不被其他用户取到 确保绝对随机数(无重复) 中国移动MM7 API用户手册(八) 中国移动MM7 API用户手册(七) 中国移动MM7 API用户手册(五) 中国移动MM7 API用户手册(六) 中国移动MM7 API用户手册(四) 中国移动MM7 API用户手册(三) 中国移动MM7 API用户手册(二) 中国移动MM7 API用户手册(一) ASP.NET中进行消息处理(MSMQ) 三 ASP.NET中进行消息处理(MSMQ) 二 ASP.NET中进行消息处理(MSMQ) 一 五险一金相关知识(转) 彩信SMIL文件学习 Log4Net使用指南
C# 循环产生多个随机数重复问题
永不放弃-Jack wu · 2011-04-23 · via 博客园 - 永不放弃-Jack wu

今天在做项目的时候,由于要批量生成充值卡,充值卡的密码是随机产生,结果在程序运行时,充值卡的密码几乎都是一样的,于是手动调试,调试生产的密码又不一样,纳闷半天,仔细一想,随机可能是以时间为种子,于是就换了个全局的Random   ,再运行程序,一切正常:

      分析:

出现相同的原因:
Random是根据时间产生随机数的,在实际运行的时候,没有断点,所以两句话执行的时间间隔非常短,无法被计时器识别,所以用的是一个相同的时间做的种子,就得到了相同的随机数
调试的时候两句话之间的时间足够长,所以种子也不同,就产生了不同的随机数
只有一个Random对象的话他会用上一次产生的结果生成种子,所以两次rnd.Next所产生的数很少会相同的

所以建议把Random rnd=new Random();做成一个类成员,声明为
private static Random rnd=new Random();
程序运行一次只创建一个Random,就极少会出现重复数了