C# 中生成随机数

本文探讨了在C#中使用Random类生成随机数时遇到的问题。当在循环中多次创建Random实例时,由于构造函数参数相同导致随机数序列重复。文章提供了正确的实践方法,包括在循环外部初始化Random实例以及使用Guid.NewGuid().GetHashCode()作为种子来确保随机性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生成1-100之间的随机数:

new Random().Next(1, 100) 但是输出的结果是一样的,因为Random调用无参的构造函数其实调用的是 有参的构造函数,传递的 默认值: Environment.TickCount。
System.Environment.TickCount 
获取开机时间函数,也就是说每次传递进去的都是一样的值,所以结果是一样的。
代码改为:new Random(Guid.NewGuid().GetHashCode()).Next(1, 10),结果就是随机的了。
或者:
Random rnd = new Random(); //在外面生成对象
 for (int i = 0; i < 10;i++ )
 {
     Console.WriteLine(rnd.Next(1, 10)); //调用同一个 对象产生随机数。
 }

  

 

转载于:https://www.cnblogs.com/zqyw/p/10875986.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值