C# Random对象短时间内产生不重复的随机数
2016-10-17 10:52
429 查看
在C#中产生随机数是一个比较常用的需求,产生随机数需要使用Random对象,Random对象默认以时间作为种子,产生随机数,调用Random对象中的方法时可产生不同的随机数,但是需要在短时间内产生多个随机数时,采用时间做种子则达不到要求,比如一个简单的产生随机数生成多个颜色的例子,代码如下(产生随机数部分):
在不调试状态下,程序每次产生的颜色如下图:
![](http://img.blog.csdn.net/20161017104749122)
在查阅资料后,将Random对象的种子采用GUID来声明,如下:
重新运行后,效果如下,每次都会产生不同的颜色:
private string GetRGBAColor(double a) { //采用默认构造,声明对象,即以时间为种子 Random random = new Random(); int r=random.Next(255); int g = random.Next(255); int b = random.Next(255); return string.Format("rgba({0},{1},{2},{3})", r, g, b, a); } //函数调用部分 int iCount=3; string[] arrBgColors=new string[iCount]; string[] arrBorderColors=new string[iCount]; for (int i = 0; i < iCount; i++) { arrBgColors[i] = GetRGBAColor(0.2); arrBorderColors[i] = GetRGBAColor(1); }
在不调试状态下,程序每次产生的颜色如下图:
在查阅资料后,将Random对象的种子采用GUID来声明,如下:
Random random = new Random(Guid.NewGuid().GetHashCode());
重新运行后,效果如下,每次都会产生不同的颜色:
相关文章推荐
- c# Random太快产生的随机数会重复
- c# Random太快产生的随机数会重复
- c# Random太快产生的随机数会重复
- C# 产生不重复的随机数
- C# 循环产生多个随机数重复问题
- C# Random 生成不重复随机数
- C#的解题思路(1):不重复随机数的产生问题
- C#的解题思路(1):不重复随机数的产生问题
- C#产生不重复随机数
- 提高c#随机数random产生随机函数的…
- C# 不重复随机数的产生问题
- C#短时间内产生大量不重复的随机数
- Random不重复随机数的产生
- C#产生不重复的随机数
- C#产生随机数 不重复
- C#的解题思路(1):不重复随机数的产生问题
- C#产生一组不重复随机数的两种方法
- C#怎样避免产生的随机数是重复的呢?
- C#产生不重复的随机数并生成随机文件名
- C#的解题思路(1):不重复随机数的产生问题 .