本帖最后由 关关雎鸠 于 2013-6-27 19:06 编辑
问:
一般都这样写:
Random ra = new Random();
for (int i = 0; i < 20; i++)
{
int a=ra.Next(1,1001);
Console.WriteLine(a);
}
输出的就是20个随机数。
----------------------------
不过我最开始的时候不是这样写:
for(int i = 0; i < 20; i++) {
Random ran = new Random();
int num = ran.Next(1, 1001);
Console.WriteLine(num);
}
运行后发现一个有意思的事……
看到没,是20个一模一样的数字。刚开始以为哪儿写错了,但是代码没有任何问题啊。于是我连续运行很多遍,发现并不是每次都是一样的,偶尔有那么一两次20个数字中出现其它的数字(但不是很多)。
于是,我调试一下,又发现:调试的结果与直接运行的结果完全是两种结果,调试最终出来的是比较“理想”的随机数……
这是神马情况?
-------------------------------
当然我知道,每次循环的时候都会创建一个Random对象,但是这样做并没有与题目相违背(也是创建随机数),但是出来的并不是理想的随机数。并且,为什么调试出来的是“理想的”,但是直接运行的却大多一样呢?
|
-
1.png
(11.13 KB, 下载次数: 0)
|