命题:已知待处理数据总数,期待按N个周期进行分批处理,实现缓解服务器压力
int a = 2165892;//待处理的总数
int b = 0;//累计处理数
System.out.println("执行前待处理数量:" + a);
for(int divider = 30;divider >=1; divider --){
//分10次处理
//根据日期递增,概率为 1/10,1/9 ...
BigDecimal probability = new BigDecimal(1).divide(new BigDecimal(divider),2,RoundingMode.HALF_DOWN);//概率
//每次处理的数量 = 当前待处理总数*概率
int num = probability.multiply(new BigDecimal(a)).intValue() ;
//待处理总数递减
a = a-num;
//累计处理数递增
b = b+num;
System.out.println("当次处理数量:" + num + ",概率:" + probability);
}
System.out.println("累计处理数量:" + b);
System.out.println("执行后待处理数量:" + a);