本帖最后由 yzw1019 于 2011-10-30 18:06:45 编辑

解决方案 »

  1.   

    上面的一个循环是for循环外生成实例,所以都是在此一个实例中生成随即数,下来的一个循环则是在for循环里面生成的实例,所以每循环一次都生成一个实例 肯定会重复。。
      

  2.   

      可以这样理解  random 产生的是伪随机数  默认情况是系统时间刻度为种子 
       第一个是在外面生成实例  并被赋予默认的时间种子  会产生一个随机数序列  调用一次rd.Next(100) 会按顺序取得一个数。 
      第二种方法是在里面生成实例  由于for循环执行速度太快  所以 random 被赋予的时间种子是一样的。所以产生的随机序列一样的  所以按顺序取出的数也是一样的  (个人对rondom机制的猜测   大体上应该没什么问题)
      

  3.   

    补充一下 :如果 在第二个方法的for循环里面加上睡眠 sleep()的话   应该就不重复了
      

  4.   


       Random rd = new Random();
    声明到类层次
       static Random rd = new Random();