題目:
已知某公司總?cè)藬?shù)為W
毙死,平均年齡為Y
歲(每年3月末計算嗤朴,同時每年3月初入職新人)贤姆,假設(shè)每年離職率為x
渔欢,x>0&&x<1
,每年保持所有員工總數(shù)不變進行招聘煎源,新員工平均年齡21歲色迂。
從今年3月末開始,請實現(xiàn)一個算法薪夕,可以計算出第N年后公司員工的平均年齡脚草。(最后結(jié)果向上取整)。
輸入描述:
輸入
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
發(fā)現(xiàn)
離職率越高帝际,公司的員工平均年齡越低?這個現(xiàn)場是不是說明為什么公司總是不停的招人(為了公司更年輕)饶辙?就是為了讓公司保持活力蹲诀?老員工越來越不待見?心寒~~~~~~~