记录一次算法心得 取不满意评价数量(超期未受理件数和超期未处理记为不满意)最多与最少的小区差额,按每 2.5 分一档,共 20 档,从最少向最多依次递减

不满意评价数量得分(50 分):取不满意评价数量(超期未受理件数和超期未处理记为不满意)最多与最少的小区差额,按每 2.5 分一档,共 20 档,从最少向最多依次递减。如:A 小区不满意数量最多有 100 件,B 小区不满意数量最少有 0 件,则每档数量为(100-0)/20=5 件,即不满意评价每增加 5 件得分减少 2.5 分。具体计分如下:
不满意评价数量     得分
    0                         50
(1-5)                  47.5
(6-10)                45
...... ......
(86-90)              5
(91-95)             2.5

 

优化前代码

 public static double assignment(Double coefficient,Integer dissatisfiedNum){//coefficient为档位   dissatisfiedNum  为不满意数
        double result = 50;
        if (dissatisfiedNum == 0){
            result = 50-2.5*0;
        }
        if (0 < dissatisfiedNum && dissatisfiedNum <= coefficient*1){
            result = 50 - 2.5 * 1;
        }
        if (coefficient*1 < dissatisfiedNum && dissatisfiedNum <= coefficient*2){
            result = 50 - 2.5 * 2;
        }
        if (coefficient*2 < dissatisfiedNum && dissatisfiedNum <= coefficient*3) {
            result = 50 - 2.5 * 3;
        }
        if (coefficient*3 < dissatisfiedNum && dissatisfiedNum <= coefficient*4) {
            result = 50 - 2.5 * 4;
        }
        if (coefficient*4 < dissatisfiedNum && dissatisfiedNum <= coefficient*5) {
            result = 50 - 2.5 * 5;
        }
        if (coefficient*5 < dissatisfiedNum && dissatisfiedNum <= coefficient*6) {
            result = 50 - 2.5 * 6;
        }
        if (coefficient*6 < dissatisfiedNum && dissatisfiedNum <= coefficient*7) {
            result = 50 - 2.5 * 7;
        }
        if (coefficient*7 < dissatisfiedNum && dissatisfiedNum <= coefficient*8) {
            result = 50 - 2.5 * 8;
        }
        if (coefficient*8 < dissatisfiedNum && dissatisfiedNum <= coefficient*9) {
            result = 50 - 2.5 * 9;
        }
        if (coefficient*9 < dissatisfiedNum && dissatisfiedNum <= coefficient*10) {
            result = 50 - 2.5 * 10;
        }
        if (coefficient*10 < dissatisfiedNum && dissatisfiedNum <= coefficient*11) {
            result = 50 - 2.5 * 11;
        }
        if (coefficient*11 < dissatisfiedNum && dissatisfiedNum <= coefficient*12) {
            result = 50 - 2.5 * 12;
        }
        if (coefficient* 12 < dissatisfiedNum && dissatisfiedNum <= coefficient*13) {
            result = 50 - 2.5 * 13;
        }
        if (coefficient*13 < dissatisfiedNum && dissatisfiedNum <= coefficient*14) {
            result = 50 - 2.5 * 14;
        }
        if (coefficient*14 < dissatisfiedNum && dissatisfiedNum <= coefficient*15) {
            result = 50 - 2.5 * 15;
        }
        if (coefficient*15 < dissatisfiedNum && dissatisfiedNum <= coefficient*16) {
            result = 50 - 2.5 * 16;
        }
        if (coefficient*16 < dissatisfiedNum && dissatisfiedNum <= coefficient*17) {
            result = 50 - 2.5 * 17;
        }
        if (coefficient*17 < dissatisfiedNum && dissatisfiedNum <= coefficient*18) {
            result = 50 - 2.5 * 18;
        }
        if (coefficient*18 < dissatisfiedNum && dissatisfiedNum <= coefficient*19) {
            result = 50 - 2.5 * 19;
        }
        if (coefficient*19 < dissatisfiedNum && dissatisfiedNum <= coefficient*20) {
            result = 50 - 2.5 * 20;
        }
        if ( coefficient*20 < dissatisfiedNum) {
            result = 0;
        }

优化后代码

public static double assignment(Double coefficient,Integer dissatisfiedNum){
       
        //不满意得分算法优化   找出规律   利用不满意数除以档位取ceil值    
        return 50 - Math.ceil(dissatisfiedNum/coefficient)*2.5;
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值