首先我们来看看2003年甲A联赛的排名规则。2004年,中国足协决定效仿英超联赛英超排名规则,推出新的中国足球超级联赛,出线球队以2002年和2003年甲A联赛的综合排名决定。具体排名公式为:
2002年排名×0.5+2003年排名=中超联赛参赛积分
通过此公式得出的数字越小,排名越高。
这种看似理想的计算方式其实存在着巨大的漏洞,前两年的排名累积对球队没有任何影响,但球队却可以合理地利用规则输掉比赛,导致其他球队排名下降,并从中获利。
我们来看一下最后一轮的比赛:
欧洲杯正在如火如荼的进行着,中国足球赌球诈骗案的审判也在沈阳落下帷幕,我不禁想起2003年上一届中国足球甲A联赛的排名规则,以及由此引发的发散性思考,在此与大家分享。
首先我们来看看2003年甲A联赛的排名规则。2004年,中国足协决定效仿英超联赛,推出新的中国足球超级联赛,出线球队以2002年和2003年甲A联赛的综合排名决定。具体排名公式为:
2002年排名×0.5+2003年排名=中超联赛参赛积分
通过此公式得出的数字越小,排名越高。
这种看似理想的计算方式其实存在着巨大的漏洞,前两年的排名累积对球队没有任何影响,但球队却可以合理地利用规则输掉比赛,导致其他球队排名下降,并从中获利。
让我们来看看 2002 年和 2003 年的最终排名:
2002 年澳超联赛积分榜
上轮球队排名
排名趋势 胜、平、负、进球、失球、净胜球、积分
1 大连实德 1 - 28 17 6 5 48 27 21 57
2 深圳平安 2 - 28 14 10 4 42 21 21 52
3 北京国安 3 - 28 15 7 6 49 29 20 52
4 山东鲁能 4 - 28 14 3 11 42 42 0 45
5 辽宁波导战6↑282
6 重庆力帆 7 ↑ 28 10 11 7 28 25 3 41
7 云南红塔 5 ↓ 28 10 10 8 30 28 2 40
8 青岛一中 8 - 28 9 9 10 30 34 -4 36
9 上海远洋 9 - 28 9 8 11 37 39 -2 35
10 天津泰达 11 ↑ 28 9 7 12 37 36 1 34
11 沉阳金德 12 ↑ 28 8 10 10 34 34 0 34
12 上海申花 10 ↓ 28 9 5 14 37 41 -4 32
13 八一振邦 13 - 28 6 12 10 27 41 -14 30
14 四川河 14 - 28 7 7 14 38 56 -18 28
15 陕西电力 15 - 28 2 7 19 24 53 -29 13
2003 年澳超联赛积分榜
上轮球队排名
排名趋势 胜、平、负、进球、失球、净胜球、积分
1 上海申花 1 - 28 17 4 7 56 33 23 55
2 上海远洋 2 - 28 16 6 6 39 26 13 54
3 大连实德 3 - 28 15 8 5 44 22 22 53
4 深圳健力宝 4 - 28 12 11 5 42 21 21 47
5 沉阳金德 6 ↑ 28 11 10 7 35 31 4 43
6 辽宁(北京三元)7 ↑ 28 11 8 9 39 34 5 41
7 云南红塔 5 ↓ 28 11 7 10 29 25 4 40
8 四川管城 8 - 28 9 10 9 41 42 -1 37
9 北京现代 9 - 28 9 9 10 34 26 8 36
10 天津康师傅 10 - 28 8 12 8 32 33 -1 36
11 青岛百莱泰 12 ↑ 28 10 5 13 40 47 -7 35
12 山东鲁能 11 ↓ 28 8 9 11 41 48 -7 33
13 重庆力帆 13 - 28 6 8 14 20 34 -14 26
14 八一湘潭 14 - 28 6 4 18 23 59 -36 22
15 陕西电力 15 - 28 3 5 20 28 62 -34 14
最后一轮对阵:
深圳 vs 申花 国际 vs 天津 重庆 vs 青岛 陕西 vs 沈阳 北京 vs 四川 山东 vs 辽宁 八一 vs 云南 实德 vs 轮空
此前重庆队无论胜负都是第13名,但2002年时却排在第6位,按照规则积分计算为:6*0.5+13=16
天津队此前排名11、10,按照规则,目前的积分是10*0.5+11=16,和重庆队一样。虽然重庆队无法改变积分,但因为上轮对阵青岛队的比赛,青岛队和天津队分别排在第11和第12位。只要输给青岛,天津也输给洲际,那么天津最终将排在第12位,总积分将是10*0.5+12=17,排在重庆队后面,失去中超资格。
需要注意的是,天津队最后一轮的对手是上海国际队,只要战胜国际队就是冠军,按照常理来说,国际队不可能打固定比赛。
原来,谋事在人,成事在天。上轮,申花1:4不敌深圳,国米则意外1:2不敌天津。虽然重庆不敌青岛,但天津已经获胜,球队的胜负已经不能决定其他球队的排名。
最终,历史证明英超排名规则,上述比赛其实都是大规模假球比赛,据称国际队的比赛涉案资金高达1200万元人民币。
这些都是后话了。我想说的是,足协当年之所以采用如此低级的计算公式,主要是因为没有选对计算模型,因为不公平的起点(去年的排名)会导致今年的胜负微妙,影响最终的排名。如果最终结果只取决于本赛季的排名,那么就不会出现如此令人震惊的漏洞。
阿姆达尔定律
这让我想起了并发三大定律之一的阿姆达尔定律,公式如下:
S=1/(a+(1-a)/n)
其中,a为串行计算部分的比例,n为并行处理节点数。因此,当a=0时,最大加速比s=n;当a=1时,最小加速比s=1;当n→∞时英超排名规则,极限加速比s→1/a,即加速比的上限。例如,如果串行代码占整个代码的25%,则并行处理的整体性能不能超过4。
阿姆达尔定律告诉我们,使用一种更快的执行方法所获得的性能提升,是和能够使用这种更快执行方法的部分的比例有关的。
我们在调优Jetty等并发服务器的时候,经常会遇到类似阿姆达尔定律的场景,当你把后台线程池开到一定程度的时候,会因为竞争CPU资源有限而产生副作用。
让我们来看看《人月传奇》。布鲁克斯认为:
人月
人月是指“一个人需要多少个月才能完成软件开发”的单位,通常用于估算软件项目的规模。基于成本会计的进度估算技术使我们错误地将工作量与项目进度混淆。人月是一个危险且容易被误解的神话,因为它假设人力和工作时间可以互换。
法律
向已经落后于进度的软件项目增加人员只会使进度更加落后。一般来说,向已经落后于进度的项目增加人员就像火上浇油,除非你能分工,让新人能够做出贡献而不影响其他人的工作。
将工作分工给更多人会产生额外的沟通成本——培训和相互沟通。软件项目增加更多人员的总成本可以分为三个方面:重新分工带来的混乱和额外的工作量、新人员的培训以及额外的相互沟通。
但在项目管理实践中,我们经常会犯这样的错误,分工有问题,却想通过加人来解决进度问题,其结果是可想而知的。
从技术角度来说,模型用得好很重要,比如你想用哈希表来解决快速KV访问的问题,但是因为你之前的哈希算法有问题,导致哈希表变成了链表,实际工作中这样的问题不胜枚举,我只是想到了这些,大家可以继续发散思考。