C# 随机数 Radom 循环生成同一的数字

错误:在一个循环结构中,利用下列代码生成随机数,发生生成的随机数是一样的!

 for (int i = 0; i < myArray.Length; i++) //给数组赋值
{
Random myNum = new Random();
int mNum = myNum.Next(20);
Console.Write("{0},",mNum); //输出数组值
            }

原因分析:
Random()函数的默认种子是时间,但在循环中产生随机数时,由于运算速度太快,用做种子的时间是相同的(毫秒级),因此产生的随机数序列是相同的,这样最终的随机数就会相同。
在调试的时候,单步执行,跟踪结果,Random都会每次根据时间做出来一个种子,跟踪的话,产生的数应该是不相同的吧

修改后的结果:

            Random myNum = new Random();
for (int i = 0; i < myArray.Length; i++) //给数组赋值
{
                int mNum = myNum.Next(20);
Console.Write("{0},",mNum); //输出数组值

}

http://www.cnblogs.com/falla/archive/2010/01/29/1659399.html

原文地址:https://www.cnblogs.com/liuxiaowei0543/p/3622389.html