日期:2014-05-18  浏览次数:20657 次

####生成随机不重复数的问题
public   class   Test   
{   
          
        public   static   void   main(String[]   args)   
        {   
                int   n=10;   
                int[]   num   =   new   int[n];   
                for(int   i=0;i <num.length;i++)   
                        num[i]   =   i+1;   
                int[]   arr   =   new   int[10];   
                for(int   i=0;i <arr.length;i++)   
                {   
                        int   r   =(int)(Math.random()*n);   
                        arr[i]=num[r];   
                        num[r]=num[n-1];   
                        n--;   
                }   
                for(int   i=0;i <arr.length;i++)   
                        System.out.print(arr[i]+"   ");   
        }   
}  
 它为什么能够生成不重复的,有点搞不明白,若前3次r是9,9,0 的话 不就重复了,但测试一千万次居然都没重复的,不明白