net Random 随机数重复的问题

在实际项目中不仅需要随机产生密码字符串,还要一次生成多个。我把生成随机字符串的方法放到for循环中,问题出现了。

生成的字符串,会重复。

经过多方查证,原因在代码。

//使用与系统时间相关的种子
Random rnd = new Random();

问题正是出现在这,系统时间会在10ms更新一次,而for循环大大短于10ms,所以会产生重复。

如何解决呢,当然是不使用默认种子,手动指定,而且种子不能重复。我想for循环中的计数器正适合。

for (int i = 0; i < count; i++)
{
     //以i作为种子,产生随机数
     Random rnd = new Random(i);
}

完美解决。

net Random 随机数重复的问题

时间: 2024-08-28 08:34:23

net Random 随机数重复的问题的相关文章

Random生成随机数重复的问题

一.Random生成随机数重复的问题 Random在生成随机数的时候,如果生成的时间非常短,那么很可能会出现生成的随机数重复的问题. 示例: static void Main(string[] args) { for (int i = 0; i < 10; i++) { Random random = new Random(); Console.WriteLine(random.Next(1, 100)); } Console.ReadKey(); } 输出如下: 解决方案:只使用一个Rando

C# Random循环生成随机数重复问题解决方案

C# Random循环生成随机数重复问题解决方案1.当我们通过Random生成随机数时,习惯的写法如下: int a=new Random().Next(0,100); 然后生成一个数据数没有任何问题,但是代码修改如下 for(int i=0;i<1000;i++){ Console.WriteLine(new Random().Next(0,100)); } 问题:你会发现生成的随机数居然完全一样.肿么办呢? 2.解决:之所以会出现这样的情况是因为C#生成随机数和计算的时间有关系,如果生成太快

解决random随机重复问题

转载:http://blog.csdn.net/chenyujing1234/article/details/7695020 1.延时的办法. 可以采用for循环的办法,也可以采用Thread.Sleep(100); 2.提高随机数不重复概率的种子生成方法: static int GetRandomSeed( ){         byte[] bytes = new byte[4];       System.Security.Cryptography.RNGCryptoServiceProv

Random随机数

Random类的常用方法 方法 备注 Int nextInt() 返回一个int类型的随机数 Int nextInt(n) 返回一个0到n之间的数,不包括n Double nextDouble() 返回一个0-1之间的数 Float nextFloat() 返回一个0-1之间的数 Long nextLong() 返回一个长整形 /*************Random的使用******************/ public static void main(String[] args) {  

类:String,Math,DateTime,Random随机数,异常保护

String类: 练习: Math类: Random随机数: DateTime类: 异常保护: 练习: 1. 2. 3.方法一: 方法二: 4.人机大战石头剪刀布 5. //请输入你想输入的数字 //33,333,333.33

string、math类、random随机数、datetime、异常保护

今天讲的知识点比较多,比较杂,以至于现在脑子里还有点乱,慢慢来吧... string (1)string.length; (获得你string字符串的长度) (2)a = a.Trim(); 重新赋值 (3)string.Trim(); 去掉字符串前后空格 (4)string.TrimStart(); 去掉前面的空格 (5)string.TrimEnd(); 去掉后面的空格 (6) string.ToLower(); 将所有大写字母转换为小写 (7)string.ToUpper(); 将所有小写

第四十七节,random 随机数模块

random 随机数模块格式: import random 引入随机模块文件 random.randrange(65,91) 调用随机函数random.randrange(随机数开始范围,随机数结束范围) #!/usr/bin/env python # -*- coding:utf-8 -*- """实现随机数""" import random #引入随机模块文件 f1 = random.randrange(65,91) #调用随机函数rando

2016年10月10日--string、Math类、Random随机数、DateTime、异常保护

string string.length; //得到string长度 string.Trim(); //去掉string前后的空格 string.TrimStart(); //去掉string前的空格 string.TrimEnd(); //去掉string后的空格 string.ToLower(); //将string所有大写字母转换为小写 string.ToUpper(); //将string所有小写字母转换为大写 sting.IndexOf(""); //查找第一次出现该字符或者

python基础学习random随机数模块

random 随机数模块 import random random.random() #随机一个浮点小数 0-1之间random.uniform(1,3) #指定随机的小小数范围random.randint(1,10) #随机一个整数(参数为随机范围)random.randrange() #随机对一个range范围进行随机random.choice() #随机一个序列(可以是字符串和列表等)random.sample(str,2) #从一个序列或字符串中选取特定数量的值random.shuffl