美文网首页
一道面试题看社会现象

一道面试题看社会现象

作者: Yinawake | 来源:发表于2019-09-30 10:50 被阅读0次

    脚本之家看到的一个面试题

    题目:
    已知某公司总人数为W,平均年龄为Y岁(每年3月末计算,同时每年3月初入职新人),假设每年离职率为xx>0&&x<1,每年保持所有员工总数不变进行招聘,新员工平均年龄21岁。

    从今年3月末开始,请实现一个算法,可以计算出第N年后公司员工的平均年龄。(最后结果向上取整)。

    输入描述:
    输入

    W Y x N

    输出描述:
    输出第N年后的平均年龄

    输入例子:

    5 5 0.2 3

    输出例子:

    15

    请给出你的解决方案!

    ***
    思路:
    第一年的平均年龄 :Y1 = (W(1-x)(Y + 1) + 21Wx) / W = (1-x)(Y + 1) + 21x
    第二年的平均年龄 :Y2 = (W(1-x)(Y1 + 1) + 21Wx) / W = (1-x)(Y1 + 1) + 21x
    ...
    第n年的平均年龄 :Yn = (W(1-x)(Y(n-1) + 1) + 21Wx) / W = (1-x)(Y(n-1) + 1) + 21x
    ***
    import math
    
    def cal_vag_age(w, y, x, n):        
        if n == 1:
            return math.ceil( (1- x)*(y + 1) + 21 * x )
        else:
            return math.ceil( (1-x) * (cal_vag_age(w, y, x, n-1 ) + 1) + 21* x )
    
    if __name__ == "__main__":    
        print("初期平均年龄为30的公司,保持10年,90%%离职率后的平均年龄为 %d" % cal_vag_age(20, 30, 0.9, 10))
        print("初期平均年龄为30的公司,保持10年,50%%离职率后的平均年龄为 %d" % cal_vag_age(20, 30, 0.5, 10))
        print("初期平均年龄为30的公司,保持10年,10%%离职率后的平均年龄为 %d" % cal_vag_age(20, 30, 0.1, 10))
        print("初期平均年龄为30的公司,保持10年,1%%离职率后的平均年龄为 %d" % cal_vag_age(20, 30, 0.01, 10))
    

    初期平均年龄为30的公司,保持10年,90%离职率后的平均年龄为 22
    初期平均年龄为30的公司,保持10年,50%离职率后的平均年龄为 23
    初期平均年龄为30的公司,保持10年,10%离职率后的平均年龄为 31
    初期平均年龄为30的公司,保持10年,1%离职率后的平均年龄为 40

    发现
    离职率越高,公司的员工平均年龄越低?这个现场是不是说明为什么公司总是不停的招人(为了公司更年轻)?就是为了让公司保持活力?老员工越来越不待见?心寒~~~~~~~

    相关文章

      网友评论

          本文标题:一道面试题看社会现象

          本文链接:https://www.haomeiwen.com/subject/anycpctx.html