如题
例如:指定范围是20,那就生成一个个数为20的随机数列,数列中的数字范围是1~20,而且数字不能重复出现。哪位大哥知道麻烦告诉一下小弟,因为是初学java,还是菜鸟一个,谢谢各位!
最好贴出具体代码

解决方案 »

  1.   

    Random rnd=new Random;
    rnd.nextInt(20);
    核心代码就在上面,至于你要生成20个数,那就创建一个长20的数组,用多个循环嵌套检查生成的数是不是和前面的元素有相同的,有就重新做,没有就赋值
      

  2.   

    1.random ra=new random ();
    ra.nextInt(20)+1;
    2.Math.random()*20
    用循环去掉重复
      

  3.   

    生产生顺序的序列,再随机进行交换import java.util.Random;public class Test {
            
        public static void main(String args[]) {
            int[] n = getRandomSeries(20);
            for(int a : n) {
                System.out.print(a + " ");
            }
        }
        
        public static int[] getRandomSeries(int size) {
            int[] series = new int[size];
            for(int i = 0; i < size; i++) {
                series[i] = i + 1;
            }
            Random ran = new Random();
            for(int i = 0, k = size * 2; i < k; i++) {
                int index1 = ran.nextInt(size);
                int tmp = series[index1];
                int index2 = ran.nextInt(size);
                series[index1] = series[index2];
                series[index2] = tmp;
            }
            return series;
        }
    }
      

  4.   


            List<Integer> list = new ArrayList<Integer>();
            Random rnd = new Random();
            for (int i = 0; i < 20; i++) {
                int j = rnd.nextInt(21);
                if (!list.contains(j) && j != 0) {
                    list.add(j);
                } else {
                    --i;
                }
            }
            Integer[] ii = list.toArray(new Integer[20]);
            Arrays.sort(ii);
            for (Integer i : ii) {
                System.out.println(i);
            }  
      

  5.   

    BufferString s="";
    for(int i=0;i<20;i++){
    s.append(p());
    }
    public static String p(){
    int a=Math.radom()*200;
    String c=String.valueOf(a);
    int b=s.indexOf(c);
    if(b>=0)
    return c;
    else
    p();
    }
      

  6.   

    import java.util.HashSet;
    import java.util.Set;public class Random { public static void main(String[] args) {
    boolean full=false;
    Set<Integer> s=new HashSet<Integer>();
    int v;
    while(!full) {

        v=1+(int)(Math.random()*20);
    s.add(v);
    if(s.size()==20){
    full=true;
    }
    }
    System.out.println(s);
    }}
      

  7.   

    import java.util.HashSet;
    import java.util.Set;public class Random { public static void main(String[] args) {
    boolean full=false;
    Set<Integer> s=new HashSet<Integer>();
    int v;
    while(!full) {

        v=1+(int)(Math.random()*20);
    s.add(v);
    if(s.size()==20){
    full=true;
    }
    }
    System.out.println(s);
    }}
      

  8.   

    public static String getNewsStringID(){

    StringBuffer buffer = new StringBuffer("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 

            StringBuffer sb = new StringBuffer();
            Random r = new Random(); 
            int range = buffer.length();
            for (int i = 0; i < 6; i ++)
            { 
                sb.append(buffer.charAt(r.nextInt(range))); 
            } 
            
            
            SimpleDateFormat formate2=new SimpleDateFormat("yyMMddmmssSSS");   
        String bb = formate2.format(new Date());
            String temp1 = sb.toString();
        String temp2 = temp1.substring(0,4);
        
        String id = "F"+temp1.substring(0,3)+bb.substring(0,2)+temp1.substring(4,6)+bb.substring(bb.length()-2,bb.length());
        
        System.out.println("F"+temp1.substring(0,3)+bb.substring(0,2)+temp1.substring(4,6)+bb.substring(bb.length()-2,bb.length())); return id;
    }

    public static String getStringID(int length){
    StringBuffer buffer = new StringBuffer("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); 

            StringBuffer sb = new StringBuffer();
            Random r = new Random(); 
            int range = buffer.length();
            for (int i = 0; i < length; i ++)
            { 
                sb.append(buffer.charAt(r.nextInt(range))); 
            }  return sb.toString();
    }