public static void WriteArrayRandom(ref int[] iArray)
{
Random r = new Random();
for(int i =0;i<10;i++)
{
iArray[i] = r.Next();
}
}
我解决了,这样就可以了,不过不明白上一贴中的代码为什么会造成产生10个相同的随机数
请赐教

解决方案 »

  1.   

    Random()构造一个新对象后,调用Next(),得第一个值在一次程序执行中都是一样的?
      

  2.   

    是这样的,构造Random对象时,会有一个种子,如果种子相同,那么生成的随机数的序列也会是相同的。使用无参构造函数构造Random对象时,默认使用当前时间做为种子,这个时间是精确到毫秒。但楼主的那个程序,一下子生成了10个Random对象,差不多是在同一个时间(计算机的速度是很快的),导致这些对象的种子都相同了,所以生成的随机数也就一样了。