C# Random循环生成随机数重复问题解决方案
2024-09-26 16:49:02
C# Random循环生成随机数重复问题解决方案
1.当我们通过Random生成随机数时,习惯的写法如下:
int a=new Random().Next(0,100);
然后生成一个数据数没有任何问题,但是代码修改如下
for(int i=;i<;i++){
Console.WriteLine(new Random().Next(,));
}
问题:你会发现生成的随机数居然完全一样。肿么办呢?
2.解决:之所以会出现这样的情况是因为C#生成随机数和计算的时间有关系,如果生成太快就会造成这个问题
解决方案1:
暂停一定时间
for(int i=;i<;i++){
Console.WriteLine(new Random().Next(,));
Thread.Sleep();
}
解决方案2:
for(int i=;i<;i++){
Console.WriteLine(new Random(Guid.NewGuid().GetHashCode()).Next(,));
}
结语:个人更偏向于第二种解决方案,因为第一种明显降低了执行效率
最新文章
- mysql-proxy 读写分离
- 说说Angular中的$timeOut定时器
- 用Sublime Text搭建简易IDE编写Verilog代码
- iOS开发-UIScrollView原理
- 加载不同的nib文件
- 007_尚学堂_高明鑫_android 之项目的打包apk与apk的反编译
- android Activity的杂乱总结
- Apache中 RewriteRule 规则参数介绍
- 学习C++ Primer 的个人理解(零)
- iOS网络开发-AFNetworking请求asp.net WebService
- json、xml和java对象之间的转化
- java虚拟机 jvm java堆 方法区 java栈
- IIS简单的反向代理设置
- 洛谷P3167 通配符匹配 [CQOI2014] 字符串
- Spark 基础之SQL 快速上手
- Mapreduce atop Apache Phoenix (ScanPlan 初探)
- scala IDE for Eclipse开发Spark程序
- pt-query-digest详解慢查询日志
- linux下修改root密码以及找回密码的方法
- Service 简介 启动方式 生命周期 MD
热门文章
- 原生http模块与使用express框架对比
- RVDS编译器
- nodejs中req.body对请求参数的解析问题
- 一起来全面解析5G网络领域最关键的十大技术
- 解析分布式锁之Redis实现(二)
- 如何向GLSL中传入多个纹理
- C++设计模式 之 “接口隔离” 模式:Facade、Proxy、Mediator、Adapter
- Python3基础 str swapcase 英文字母大小写反转
- 打开vi后提示The ycmd server SHUT DOWN (restart with :YcmRestartServer)该如何处理
- 明码|2018年蓝桥杯B组题解析第二题-fishers