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

推荐订阅源

Google DeepMind News
Google DeepMind News
爱范儿
爱范儿
J
Java Code Geeks
L
LangChain Blog
V
V2EX
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
博客园 - Franky
Microsoft Azure Blog
Microsoft Azure Blog
Jina AI
Jina AI
Blog — PlanetScale
Blog — PlanetScale
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Cloudflare Blog
博客园 - 司徒正美
B
Blog
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
MyScale Blog
MyScale Blog
有赞技术团队
有赞技术团队
Hugging Face - Blog
Hugging Face - Blog

博客园 - 永不放弃-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,就极少会出现重复数了