最新消息: 新版网站上线了!!!

Java获取指定范围个数不重复的随机数

1、随机拆分一个整数

public static List<Integer> randomList(int n){
    Random rand = new Random();
    List<Integer> list = new ArrayList<>();
    int i = 0;
    while (i < n) {
      int num = rand.nextInt(n);
      if (!list.contains(num)) {
        list.add(num);
        i++;
      }
    }
    return list;
 }

2、从已知列表中随机选取不同对象 

public static List<Integer> randomList(int n,int size) {
    Random rand = new Random();
    List<Integer> list = new ArrayList<>();
    int i = 1;
    while (i <= n) {
      int num = rand.nextInt(size-1) + 1;
      if (!list.contains(num)) {
        list.add(num);
        i++;
      }
    }
    return list;
 }

3、把一个整数拆分成不等的几份



public static List<Integer> randomList(int n, int m){
 Random rand = new Random();
 List<Integer> list = new ArrayList<>();
 int temp = m;
 for(int i = 0, j; i < n-1; i++){
 j = rand.nextInt(temp-1) + 1;
 temp -= j;
 list.add(j);
 if (temp == 1){
  break;
 }
 }
 list.add(temp);
 return list;
}


转载请注明:谷谷点程序 » Java获取指定范围个数不重复的随机数