两个简单的例子,代码实现如下:
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;
}
例子很简单,仅供参考。