经过写程序测试,结果总结如下:
1、如果想一次性产生4个随机数,那么使用一个Random对象,调用4次Next函数,如此所示:
Random r = new Random();
int rInt = r.Next(100);
int rInt11 = r.Next(100);
int rInt12 = r.Next(100);
int rInt13 = r.Next(100);
经过反复测试,产生的四个随机数没有发现重复的。
2、如果是4个对象,分别调用,如下所示:
Random r = new Random();
int rInt = r.Next(100);
Random r2 = new Random();
int rInt2 = r2.Next(100);
Random r3 = new Random();
int rInt3 = r3.Next(100);
Random r4 = new Random();
int rInt4 = r4.Next(100);
产生的4个随机数每次都是一样的,原因是,Random类是一个产生伪随机数的类,构造函数Random()是根据触发那刻的系统时间做为种子,因为计算机运行速度很快,触发Randm函数间隔时间很短,就会造成产生一样的随机数。而上面用同一个对象的话,感觉c#做了去重优化处理。
3、Random类还有一个构造函数Random(int Seed),可以自己设定触发的种子。但是,必须设置不同的种子,才能产生不同的随机数。弊端就是每次得设置不同的种子,不然的话,每次产生的随机数都是一样的。
4、如果不是同时就要四个随机数,可以使用延迟的办法产生,因为时间有延迟,随机的种子就会不同,就会产生不同的随机数。
5、当然,产生随机数的办法有很多种,如果有更好方法,不吝赐教!
</

本文探讨了在C#中生成随机数的不同方法及其效果,包括使用Random类的不同构造函数来避免重复,以及利用RNGCryptoServiceProvider类生成高质量随机数的技术。
最低0.47元/天 解锁文章
3406

被折叠的 条评论
为什么被折叠?



