人固有一死,就是说,人不能死两次。道理简单,但许多人还是在这上面犯错误。我们还是用人口模型。假如我们把死亡分为正常死亡和非正常死亡,总人数M在N年内,前者为M1,后者为M2,问正常死亡和非正常死亡的平均死亡率m1和m2各为多少。 这是别人做的模型,我的任务是写程序,文件中的公式是这样的 m1 = 1 – [ (M – M1) / M] ** (1/N) m2 = 1 – [ (M – M2) / M] ** (1/N) 看上去也象模象样,但其实不用去推演, 就发现这是错的. m1 和m2 怎么可能只M1和M2相关呢。 我们以正常死亡为例来解释这公式为什么错了。先看第1年,在上面的公式里,在总人口M中,m1M人离开,好像没什么不对。再看第二年,初始人口为M(1-m1),毛病就出在这儿。因为还有非正常死亡,所以实际初始人口为M(1-m1- m2)。那些非正常死亡的,其中一部分因为这个公式又正常死亡了一次。以非正常死亡为例讨论也是一样。 假定我们找到了正确的m1和m2,看看情况时怎样的。先计算总存活率,这我们已经很有经验了 r = [1 -(M1 + M2)/ M]1/N = 1 - m1 - m2 现在逐年计算死亡人数。 年份 | 初始人数 | 正常死亡 | 非正常死亡 | 1 | M | M m1 | M m1 | 2 | M r | M m1 r | M m2 r | 3 | M r2 | M m1 r2 | M m2 r2 | 。。。 | 。。。 | 。。。 | 。。。 | N | M rN-1 | M m1 rN-1 | M m2 rN-1 | 正常与非正常死亡总人数为M1和M2。 M1 = M m1 (1 - rN) / (1 - r) M2 = M m2 (1 - rN) / (1 - r) 公式的简洁程度远超出预料。公式告诉我们,m1和m2就是把就是把总死亡率按照M1和M2进行分配。 m1 = M1 (1 - r) / (M1 + M2) m2 = M2 (1 - r) / (M1 + M2) 公司的一位同事在航空公司工作过,他告诉我,航空公司决定各种折扣的机票各卖多少以达到盈利最大化,用的也是这个模型。 这个错误模型是很高层的主管部门要我们做的。看懂我这儿的推导解释,大约一碗水的功底就够了。能看出这问题并找出正确答案,一桶水大概也就够了。但敢于指出这上司的N次方错了,就不是多少水的问题了,一缸水是至少要的,更重要的是对自己要有极大的自信,知道这一缸水是货真价实没有水分的!!! |