java生成多个随机数的和为固定值
这边设置的是生成5个随机数的和固定为10
List<Integer> result = new ArrayList<Integer>();
int num = 5;
int min = 0;
int max = 10;
int num1 = getRandom(min, (max / num + 1));
result.add(num1);
int total = max;
for (int i = 1; i < num; i++) {
total = total - num1;
while (total < min) {
int maxc = Collections.max(result);
result.set(result.indexOf(maxc), min);
int s = result.stream().map(e -> e).reduce(Integer::sum).get();
total = max - s;
}
if (i != num - 1) {
num1 = getRandom(min, total);
result.add(num1);
} else {
result.add(total);
}
}
System.out.println("打印结果==="+result);
public static int getRandom(int MIN, int MAX) {
Random random = new Random();
return random.nextInt(MAX - MIN + 1) + MIN;
}