//生成180个随机数总和等于fenPeiShu
List<Integer> result = new ArrayList<Integer>();
int num=180; //随机次数
int max=1000;//总和
int min=1; //最小次数
if (num == 1) {
result.add(max);
//return result;
} else {
int num1 = getrandom(min, (max / num + 1));
result.add(num1);
int total = max;
for (int k = 1; k < num; k++) {
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 (k != num - 1) {
num1 = getrandom(min, total);
result.add(num1);
} else {
result.add(total);
}
}
Integer sum = result.stream().reduce(Integer::sum).orElse(0);
System.out.println("==========>"+sum);//每次值
List<DataNumber> numbers=new LinkedList<>();
//小时
for (int i = 1; i <25 ; i++) {
for (int j =0; j < xiaoShiCiShu; j++) {//次数
DataNumber dataNumber = new DataNumber();
dataNumber.setHours(i);//小时数
dataNumber.setFrequency(j+1);//每小时的次数
dataNumber.setCountNumber(fenPeiShu);//小时内总值
Integer ss=result.get(j);
dataNumber.setNumber(ss);//每次生成随机数值
numbers.add(dataNumber);
// dataNumberMapper.insert(dataNumber);
}
}
dataNumberMapper.insertBatch(numbers);//批量保存
}
【无标题】
最新推荐文章于 2024-07-15 22:27:18 发布