前言
文章摘抄至《算法之美》,附带了Python模拟。
不久前,我去观看草地网球锦标赛,一位十分沮丧的运动员引起了我对球赛目前采用的名次确定方法的注意。这位运动员在比赛中早早落败,因此彻底失去了获得奖牌的机会。令他感到屈辱的是,获得第二名的是他知道的一名远不如自己的运动员。
普通观众可能会把这种“哀叹”归咎于失败的痛苦,但道奇森并不是一个同情心泛滥的人,他是牛津大学数学系讲师,因此,在听到运动员的抱怨之后,他决定对体育赛事展开深入调查。道奇森不仅仅是一个数学家(其实他几乎不记得自己是从事数学研究的)。现在,反而是他的笔名——刘易斯·卡罗尔更加广为人知。他以这个笔名写出了《爱丽丝漫游奇境记》以及大量其他深受欢迎的文学作品。他还将他的数学知识与文学天赋相结合,完成了一篇知名度略低的文章——《草地网球锦标赛:正确的名次确定方法以及现行方法辨误》。
道奇森针对的是单一淘汰赛。在这种赛制下,运动员两两对决,只要输掉一场比赛,就会被淘汰出局。道奇森的理由非常有说服力,他认为,货真价实的第二名有可能是被第一名淘汰的任何人,而不一定是最后才被淘汰的那名运动员。
直白地说,银牌是一种假象。“作为一个数学事实,”他继续写道,“实力排第二位的运动员获得应得名次的机会只有16/31。而最优秀的4名运动员获得与实力相称名次的机会非常小,发生的概率为1/12!”
这里可以借助Python演示一下(语言不重要,可以改成自己熟悉的。)
import copy
import random
class Participants():
def __init__(self,*_participants):
self.name = _participants[0]
self.performance =_participants[1]