怎么产生指定范围内的,不重复的随机数,保存有数组中  如,1----9范围内的

解决方案 »

  1.   


    import java.util.*;
    public class Test{
        public static void main(String[] args){
            //生成 [0-n) 个不重复的随机数
            //list 用来保存这些随机数        int n = 10;
            int[] nums = new int[10];
            
            
            Random rand = new Random();
            
            boolean[] bool = new boolean[n];
            
            int num =0;
            
            for (int i = 0; i<n; i++){
                
        
                do{
                    //如果产生的数相同继续循环
                    num = rand.nextInt(n);    
                 
                }while(bool[num]);
                
                bool[num] =true;
                
                nums[i]=num;
            
            
            }
                    
            for (int i = 0; i<nums.length; i++){
             System.out.println (nums[i]);
            }
            
            
        }
    }
    //上面是0-n 的随机数的生成方法
    //如果 lz想生成m-n 的话 
    //就改下面的两行代码
    // boolean[] bool = new boolean[n+m];
    // num = rand.nextInt(n)+m;    
      

  2.   

    我以前是用 list 来保存的 现在改了下 ,不过主要算法都是一样的。