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

一道面试题看社会现象

作者: 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