怎么用JAVA声成50以内不重复的随机数

解决方案 »

  1.   

    使用set,你把随机生成的数,放到set中去就行了,你判断set的size(),需要多少,你就看size多大,然后退出循环就行了
      

  2.   


    int x
    x=(int)(Math.random())*100;
    if(x>50) return x-50;
    else return x;
      

  3.   

    Set<Integer> src=new HashSet<Integer>();
    while(src.size()<50){
    Integer temp=new Random().nextInt(50);
    src.add(temp);
    }
    for(Integer i:src){
    System.out.println(i);
    }
      

  4.   

    import java.util.*;public class Test {
     public static void main(String[] args){
     ArrayList arr = new Test().getRandom(50);
     Iterator it = arr.iterator();
     while(it.hasNext()){
    System.out.println(it.next());
     }
     }
     public ArrayList getRandom(int num){
     ArrayList randomNum = new ArrayList();
     Random random = new Random();
     int temp = 0;
     for (int i = 0;i < num; i ++){
     temp = random.nextInt(num);
     int nums = temp + 1;
     if (randomNum.indexOf(new Integer(nums)) == -1){
     randomNum.add(new Integer(nums));
     }else{
     i -- ;
     }
     }
     return randomNum;
     }
    }
      

  5.   

    int[] nums=new int[50];
    nums[0]=(int)(Math.random()*50);
    for(int i=1;i<nums.length;i++){
      boolean f=false;
      do{
        f=false;
        nums[i]=(int)(Math.random()*50);
        for(int j=0;j<i;j++){
          if(nums[i]==nums[j]){
            f=true;
            break;
          }
        }
      }while(f);
    }
      

  6.   

    把1~50放到list里,随机取小于list长度的数,然后取出该数字,remove掉那个取得的数字
      

  7.   

    x=(int)(Math.random()*50)+1;
    然后判断以前的数据是否和这个有重复.