首页 > 代码库 > net Random 随机数重复的问题
net Random 随机数重复的问题
在实际项目中不仅需要随机产生密码字符串,还要一次生成多个。我把生成随机字符串的方法放到for循环中,问题出现了。
生成的字符串,会重复。
经过多方查证,原因在代码。
//使用与系统时间相关的种子Random rnd = new Random();
问题正是出现在这,系统时间会在10ms更新一次,而for循环大大短于10ms,所以会产生重复。
如何解决呢,当然是不使用默认种子,手动指定,而且种子不能重复。我想for循环中的计数器正适合。
for (int i = 0; i < count; i++){ //以i作为种子,产生随机数 Random rnd = new Random(i);}
完美解决。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。