如果输入值大于要分开的数的个数,保证每个数最少是1,否则最小可以是0。
public static List<Integer> randomDivideNumber(int number, int part) {
Random random = new Random();
List<Integer> result = new ArrayList<>();
int total;
if (number > part) {
total = number - part;
for (int i = 0; i < part - 1; i++) {
int rand = random.nextInt(total + 1);
result.add(rand + 1);
total = total - rand;
}
result.add(total + 1);
} else {
total = number;
for (int i = 0; i < part - 1; i++) {
int rand = random.nextInt(total + 1);
result.add(rand);
total = total - rand;
}
result.add(total);
}
return result;
}
网友评论