当前位置:首页 > C#

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

happyfhb8年前 (2018-11-23)C#2620
摘要:C# Random循环生成随机数重复问题解决方案1.当我们通过Random生成随机数时,习惯的写法如下:int a=new Random().Next(0,100);然后生成一个数据数没有任何问题,但是代码修改如下for(int i=0;i<1000;i++){  &nb…

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#生成随机数和计算的时间有关系,如果生成太快就会造成这个问题

解决方案1:

暂停一定时间

for(int i=0;i<1000;i++){
    Console.WriteLine(new Random().Next(0,100));
    Thread.Sleep(100);
}

解决方案2:

for(int i=0;i<1000;i++){
    Console.WriteLine(new Random(Guid.NewGuid().GetHashCode()).Next(0,100));}

结语:个人更偏向于第二种解决方案,因为第一种明显降低了执行效率

扫描二维码推送至手机访问。

版权声明:本文由海海日记-冯海滨博客发布,如需转载请注明出处。

本文链接:http://www.fenghaibin.com/?id=1298

“C# Random循环生成随机数重复问题解决方案” 的相关文章

vb.net 随机函数 random 用法

VB.net 的写法dim rand as new random()i=rand.next(1,100)表示伪随机数生成器,一种能够产生满足某些随机性统计要求的数字序列的设备。命名空间:System程序集:mscorlib(在 mscorlib.dll 中)伪随机数是以相同的概率从一组有限的数字中选…

asp.net substring截取函数详细用法

asp.net  substring截取函数详细用法字符串截取,substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。substring(int beginIndex, int endIndex)  返回一个新字符串,它是此字符串的一…

学习心得 数据库连接类的书写规范

一般的规范都是建立3个类文件类1:字段(属性)model类2:方法(函数) dal类3:辅助或者就是 本来可以直接通过dal调用的方法 我在重写一遍 起中转作用 可以使程序更加清晰  bll…

c#中如何判断用户输入的字符全部为数字的方法-经典

             string num = textBox1.Text; //从文本框获取用户输入的值     …

C#延时方法片段

 label4.Text = "输入非数字字符";                //延时1秒  &…

C# 编写 Windows服务

. 新建一个项目2. 从一个可用的项目模板列表当中选择Windows服务3. 设计器会以设计模式打开4. 从工具箱的组件表当中拖动一个Timer对象到这个设计表面上 (注意: 工具箱中的timer 都是不对的,需要另行添加 详见方法 )&n…

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。