g02313 2017-07-19 13:41 采纳率: 0%
浏览 952

员工之间工资不超1.5倍

三名员工 a b c ,为消除贫富差距,公司规定员工间工资不超过1.5倍,即a/b<1.5 a/c<1.5 b/c<1.5
在工资总量不变的情况下,如何实现员工间工资调整幅度最低且满足1.5倍要求,请提供思路。

  • 写回答

1条回答 默认 最新

  • 张大教主 2017-07-20 03:14
    关注
    假设总工资为15000,假设a,b,c三个之中最小工资为a,最大值为c,情况可以划分三种,
    //情况1:总工资不变,a最大情况:三者相同 ,即a=b=c
        a=15000/3=5000,b=5000,c=5000
    //情况2:总工资不变,a中等,b=a,c=1.5a
        a=15000/(1+1+1.5)=4300,b=4300,c=6400
    //情况三:总工资不变,a最小,b=c=1.5a
        a=15000/(1+1.5+1.5)=3750,b=c=5625
    
    从上面可以看出,总工资不变
    a,b,c三个相同时,最小值a最大 ;b.c最大时,都为a的最大倍数,最小值a最小:
        3750=<a<=5000,
    c的范围:a,b,c三个均等时,最大值最小;a,b最小时,c最大
        5000=<c<=6400
    所以最大薪资和最小薪资范围都已确定,那么一旦在各自区间给出确定值后,中间值就用总金额去减掉就ok了:b=15000-a-c;
    根据上面分析就简单多了,我们只需要获取最大值和最小值区间就好了
    function getMaxSaleryLevel(total){
        var min=total/(1+1+1);即a=b=c
        var max=total/(1+1+1.5);即b=a,c=1.5a
        return {'min':min,'max':max};
    }
    function getMinSaleryLevel(total){
        var min=total/(1+1.5+1.5);//b=c=1.5a
        var max=total/(1+1+1);//a=b=c
        return {'min':min,'max':max};
    }
    var maxLevel=getMaxSaleryLevel(total);
    var minLevel=getMinSaleryLevel(total);
    那么最大值的范围:[maxLevel.min~maxLevel.Max]
    最小值的范围:[minLevel.min~minLevel.max]
    只要确保最高工资和最低工资在各自的范围内,那么中间那个人的工资用总工资减去这两个就ok了,
    结果都保证在1.5000倍数区间内并且总工资不变
    
    评论

报告相同问题?

悬赏问题

  • ¥15 网友们我该怎么办啊,急
  • ¥15 混合键合键合机对准标识
  • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
  • ¥15 目标跟踪,计算机视觉
  • ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
  • ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?
  • ¥200 C++表格文件处理-悬赏
  • ¥15 Windows Server2016本地登录失败
  • ¥15 复合卡卡号轨道写入芯片卡
  • ¥20 基于MATLAB的TDOA