public int[] Ran()
        {
            int[] a=new int[5];            
            Random ran = new Random();
            for(int i=0;i<5;i++)
            {  
                a[i]=ran.Next(10);
                a=aa(a, i, ran);
            }
            return a;
            
         }public int[] aa(int[] a, int i,Random ran)
        {
            for (int j = i - 1; j >= 0; j--)
                if (a[j] == a[i]) {a[i] = ran.Next(10); aa(a,i,ran);}
            return a;
        }
有什么不好的地方请大家指出,谢谢!

解决方案 »

  1.   

    Random ran = new Random(); 
    这句不要写在里面要写在外面
      

  2.   

    带参数的方法! 随机的public int[] Ran(Random ran ) 
      

  3.   

    是如果把
    Random ran = new Random(); 写在里面
    那么计算机运算这么快,你可能得到的很多值都是同一个值
    也就没起到随机作用。
    写在外面可以得到不同的值。
      

  4.   

    http://topic.csdn.net/u/20081227/11/d47c3275-0e5d-4543-8e5a-0399a4c37880.html
      

  5.   

    static Random Rnd = new Random();public int[] Ran()
    {
        int[] a = new int[5];
        for (int i = 0; i < 5; i++)
        {
            a[i] = Rnd.Next(10);
            a = aa(a, i);
        }
        return a;}public int[] aa(int[] a, int i)
    {
        for (int j = i - 1; j >= 0; j--)
            if (a[j] == a[i]) { a[i] = Rnd.Next(10); aa(a, i); }
        return a;
    }
      

  6.   

    记住 Random 应该声明为Static变量,万事大吉。