1 像数1,2,3那样简单
计数、排序和处理数据的基本工具
那是1993年冬天,占据各大音乐排行榜榜首位置的是密特·劳弗的《为了爱,我愿意做任何事》(I’d Do Anything for Love)。当时,我还是一名9岁的小男孩,身上穿着有点儿偏大的连帽冬装,站在操场上,手里拿着我最珍贵的财产——梅林英超1993—1994赛季足球球星贴纸收藏册。对于20世纪90年代在伦敦东区长大的孩子来说,操场上的通用语言是足球,而流通货币则是球星贴纸。
“这个我有,这个我有,这个我有,这个我要。”这是我和其他孩子交换贴纸时挂在嘴边的话。看到已经收藏的贴纸,我就会心平气和地说“这个我有”;但一旦看到我还没有收集到的贴纸,我就会兴奋地脱口而出:“这个我要!”每到周五下午,宣告周末到来的铃声一响起,我通常就会冲向街角的商店,掏出我仅有的几英镑零花钱,买回几包价格虚高的贴纸。
我的朋友们不仅交换贴纸,还经常猜测哪些球员会是理想的转会人选。虽然布莱克本的高产射手阿兰·希勒更适合亚历克斯·弗格森为曼联打造的锋线,但在孩子们的梦想世界中,希勒可能会出现在西汉姆联的厄普顿公园球场上。贴纸世界与真实世界显然有所不同!
这是数字第一次在我的社会生活中扮演某种角色。当然,我第一次与数字打交道是数数:1,2,3……它给我带来的是一种非常简单的快乐。但在这个新的贴纸世界中,我才第一次发现数字起到了非常重要的作用。我与小伙伴们聊到足球时,经常会做出一些毫无根据的断言,比如,我断定阿森纳的射手伊恩·赖特比南安普顿的马特·勒蒂西耶效率更高。但是,我引用数字时的那份自信帮助我赢得了他们的认同。我知道这两个前锋在之前的联赛中都进了15个球,这一事实使我的观点更加可信。
我记得,每次交换到新的贴纸后,我就会拿着贴纸册跑回家,兴冲冲地在微软电子表格(Excel)的主工作表中输入所有新贴纸上面的信息。例如,收集到曼联前锋埃里克·坎通纳的贴纸后,我输入了他的详细个人信息(身高1.86米,体重81千克)和他的表现数据(33次出场;2次替补;15个进球,其中右脚打进10个,左脚打进1个,还有4个头球)。几年后,我已经是一名中学生了,但我还没有放弃这一兴趣爱好。不过,我开始使用效率更高的微软数据库管理系统软件(Access)来完成同样的工作,输入的数据包括球员的姓名、首发位置、身高,还有他前一年的数据,比如出场和进球情况。
有了这些,我就能对球员做出更准确的评估。如果西汉姆联球迷想要找出身高超过1.83米、上个赛季出场次数超过20场的后卫,我只要在Excel中输入一个快速排序公式,就会产生神奇的效果。不费吹灰之力,我就可以列出符合条件的球员名单。
我发现,由于利用电子表格可以轻轻松松地根据不同标准(身高、进球数和出场次数)对球员进行排序,本来异常复杂的情况一下子变得有迹可循了。于是,尽管球员令人眼花缭乱的球技和持球时的那份自信会给我留下深刻的主观印象,但数字仍然提供了一些相对客观的比较标准。借助一些基本的数据处理技术(比如求平均值、中位数和众数),本来看起来毫无意义的数字(例如各个球员的身高)在我眼中变得生动起来,使我可以权衡这些球员孰优孰劣。我可以回答朋友们提出的问题,比如“哪支球队的平均身高在联盟中排第一?”或者“哪支球队的中场进球最多?”,让朋友们一下子对我钦佩不已。只要在电子表格中点击几下,就可以轻松地找到答案。我没有将自己对足球的这种客观分析转化为商业行为或许是错失了一大良机——现在Opta Sports等公司已经因为这项业务取得了成功!
数字在一个充满猜想的世界里给了我一种“了然于胸”的感觉。就像史努比漫画里莱纳斯的安全毯一样,数字也是我成长过程中的一块基石。实际上,我对数据确定性的感知可以追溯到我在1991年收到的一份圣诞礼物,比那本英超贴纸收藏册还要早两年。我收到的是一本书——拉塞尔·阿什(Russell Ash)的《全世界“十大”博览(1992)》。从我小心翼翼地打开礼物包装纸的那一刻起,我就开始如饥似渴地浏览书中列出的各类“十大”,包括世界上最高的十座建筑,票房收入最高的十部电影,迁徙路线最长的十个物种,等等。你随便说一个主题,无论是天文学、艺术,还是食品、饮料和音乐,我都可以飞快地背出一个个榜单(尽管我或许还不太明白这些数字背后的含义)。
1992年的巴塞罗那夏季奥运会使我第一次看到,数字可以用一种令人神往的方式,直观地表现出年轻运动员处于巅峰状态的体能:英国代表队的队长林福德·克里斯蒂以9.96秒的成绩勇夺100米短跑金牌;卡尔·刘易斯在史诗般的男子跳远决赛中以3厘米的优势险胜迈克·鲍威尔;拉维尼娅·米洛索维奇的自由体操成套动作令观众如痴如醉,也为她赢得了满分10.0分。那时候的我还是个小男孩,四脚朝天地躺在客厅的地板上,大口吃着消化饼干,全神贯注地盯着那些比赛。我开始慢慢地明白,数字是一种计算大小和进行排序的方法,可以确定谁是赢家,谁是输家。我的眼前浮现出大量的数字,对那些相互竞争的对手和国家进行排名或排序,试图客观地量化似乎与学校里的数学课没有任何关系的那些东西。
我早就深深地喜欢上了数字,不仅包括课堂上的数字,也包括在现实生活中接触到的那些数字。你或许会问:“数字真的有那么重要吗?数字从何而来?把一堆事物排序,然后处理成简洁明了的信息,到底有什么意义呢?”
起初,上帝创造了天和地,但如果你问我上帝是什么时候创造数字的,我可以告诉你答案是之后不久,因为上帝需要在第7天休息一天。有证据表明,在出生后的几个小时内,婴儿就开始形成对数字的抽象表达能力。
我们人类正是在这个抽象阶段超越地球上大多数物种的。许多动物确实也能以一种非常原始的方式区分“多”“少”的概念,但人类这个物种已经在很大程度上超越了狩猎采集者这个身份,进入了更先进的文明(可以在脸谱网上浏览可爱的猫咪视频)。但对亚马孙雨林深处的毗拉哈部落来说,他们的生活方式仍然和古时候一模一样。他们的计数系统只能数“1”“2”,然后就是“很多”了。与之类似,居住在坦桑尼亚境内、东非大裂谷中部附近的非洲哈扎部落最多也只能数到3。这两个部落的群体生活似乎不需要使用诸如107这样具体的大数。但绝大多数人类都会更进一步,通过加、减、乘、除等简单的算术运算,在抽象的数字概念之间建立各种各样的联系。
在没有发生突变的情况下,人类出生时就有10根手指,这些手指简直就是老天为我们准备的算盘。因此,许多文明发展出了十进制(以10为基数的)计数系统,并不是一种巧合。英语中表示数字的词来自拉丁语的“digitus”,原意是手指。曾经有学生问我,如果人类出生时都像忍者神龟一样,每只手只有3根手指,会怎么样呢?如果总共有6根手指,那么人类或许会发展出一个以6为基数的计数系统——或许我们还会生下来就喜欢吃比萨,而且喜欢表演虎虎生风的武术动作!
下面我来解释一下基数到底是干什么的。十进制计数系统是我们都熟悉的,它以10为一组,利用0,1,2,3,4,5,6,7,8,9这10个符号表示我们知道的所有整数。然后,我们以10为单位,把数字分成不同的批量(例如10,20,30,100,500,100000等),这些批量都可以被基数10整除。从我们使用的集合名词(比如年代、世纪、千年)中,就可以看出这个特点。有趣的是,我们认为理所当然的集合名词,比如板球中的100分[1]或《全世界“十大”博览》中的“十”,都来自我们的主观选择,基于我们的十进制系统。对于忍者神龟来说,出版《全世界“六大”博览》同样是很自然的事(在这个平行宇宙里,年轻的忍者神龟罗伯托也会慢慢喜欢上数学,还会喜欢上编制以6为单位的各种清单)!
如果我们以6为基数,那么我们的计数将遵循以下顺序:0,1,2,3,4,5,然后就会进位到10(在这套系统中就是6),11,12,13,14,15,再然后进位到20(这个计数系统中的20等于我们使用的十进制系统中的12)。所以,下次你在购买价格为10英镑的西汉姆联队观赛指南时,不妨试试这个:你可以付给对方6英镑,然后告诉他你不同意英镑以10为基数。当然,你要做好随时逃跑的准备!
酒吧问答游戏中经常问到的一个问题是哪个国家现在使用的语言种类最多(不包括方言,否则伦敦就有可能胜出)。根据2018年的“民族语:世界语言”研究,巴布亚新几内亚——位于澳大利亚北边,占据了地球上第二大岛屿东部的国家是这个纪录的拥有者,一共有841种语言。据说这个国家的各个部落拥有的计数系统数量也最多,大约有900种(这也许并非巧合)。在阿兰布拉克语(Alamblak)中,只有1,2,5和20这四个数有专门的词表示,其他所有的数字都是由这些词构成的。另一种语言——奥克萨普明语(Oksapmin)使用的基数是27,因为他们使用27个身体部位帮助计数。需要表示大于27的数时,他们就会用“1人”来表示进位量。因此,50这个数用“1人”(27)和“左手拇指”(23)来表示。
在人类早期历史中,人们通过在木条或石头上刻画凹痕的方法来记录一些东西(可能是谷物或者其他食物的数量),这是他们自然而然就能想到的办法。他们把每10个东西归为一组,用一个符号表示一组,重复使用表示有多组。表示10的符号之后再跟着一系列重复的表示1的符号。比方说,古埃及人用竖线表示1,用仿佛是一顶高帽子的符号“^”表示10。由于他们习惯于从右向左书写,因此数字25就会被写成IIIII^^。与之不同的是,巴比伦人的数字系统使用60作为基数,因此从1到59的每一个数字都要使用不同的符号表示(就好像在我们使用的十进制系统中,1到9都有专门的数字)。直到今天,巴比伦人使用的60进制仍然影响着我们,尤其体现在我们的时间系统(角度测量中的秒与分以60为单位进行换算)和几何学(三角形内角和为180度,圆的一周为360度)中。
巴比伦人提出的最实用的概念是“位值”,即数字因为在序列中的位置不同而表示不同的值。以444这个数为例,从左到右的三个4根据它在这个数中出现的位置不同,分别表示400、40和4。这在我们看来很平常,但对于巴比伦人而言,这是一个革命性的突破。
接下来的一个飞跃是数字0的发明,这个发明似乎于公元前3世纪前后发生在我的祖先所在地——印度。今天,凭借由0和1构成的二进制系统(以2为基数),计算机正以惊人的速度把我们每个人联系在一起。
数数对我们来说是一件再自然不过的事,在我们周围随处可见,甚至在我们的流行音乐文化中也是如此。从小,我们就会接触“一二三四五,上山打老虎”[2]和“一,二,系好鞋带儿”这些经典的童谣。随着孩子们开始接触成人音乐,数字在歌词中仍然极为常见。例如,由喜剧演员转型为说唱歌手的“大鲨鱼”(Big Shaq)2017年的热门歌曲《男人不热》(Man’s Not Hot),在一开头就唱道:“二加二等于四,四减一等于三,这是小学数学。”
确定好数字之后,就可以进行比较了。如果我有2辆玩具车,而我表弟有4辆玩具车,我就可以确定我还得有2辆玩具车,才会和表弟拥有的一样多。在这个基础上,我们可以对每个人按照拥有的物品进行逐项排序了(例如,按照拥有的汽车数量排序)。
我们可以利用各种各样的统计技术,来发现数据所代表的含义。首先,我们从自然数(1,2,3等用于计数的数字)开始,学习最基本的数字。接着,我们开始理解负数和0(-3,-2,-1,0,1,2,3),并逐渐扩展到所有整数。不仅如此,我们还可以进一步深入到有理数(可以表示为分数的数)的世界,然后是无理数、不尽根数、质数(也称素数)……不过,这就是另一段旅程了。
但现在我忍不住要讨论一下质数。质数是数学的基本组成要素,就像化学中的原子或艺术家的调色板一样。质数包括2,3,5,7,11,13等,是指大于1且只能被1和它本身整除的数。17是质数,因为它只能被1和17整除;而10不是质数,因为它除了1和10以外,还可以被2和5整除。
质数之所以令人着迷,部分原因在于所有大于1的非质数(合数)都可以表示为质数的乘积。例如,30可以写成2×3×5,2、3和5都是质数。同样地,123456789可以表示成3×3×3607×3803。
质数不仅带给我们数学的美感,还为现代技术的安全性奠定了基础。很多加密算法的安全性都是基于质数的一个特点:两个很大的质数和乘积很容易计算,但是这个过程的逆向过程极为困难(即使借助计算机,也不容易解决)。对于比较小的数(如21=3×7),把它分解成两个质数的乘积很容易。但是要找到一个非常大的数是由哪两个(或多个)质数相乘而得,就不是那么容易了。事实上,寻找一种能够快速执行该任务的算法是计算机科学领域最大的未决问题之一。
到目前为止,数学家一直无法推导出可以高效地将大数分解成质数的公式。对于24这样的小数字,我们可以很容易地完成质因数分解并得出2×2×2×3这个结果。我们也可以借助某些技术将大数分解成质数,但如果我们对400或500位的数使用这些方法,那么即使是世界上最先进的计算机,也要花长到难以想象的时间才能完成这项任务。这里所说的“长到难以想象的时间”,是指比地球年龄还要长的时间。对于一个非常大的数来说,质因数分解所需的时间可能比宇宙存在的时间还要长。
因此,下次你发送安全的即时通信软件WhatsApp消息、进行在线交易或者使用自动柜员机时,要记得,为你提供保护的很可能就是大质数乘法。
即使是在自然界,质数也能发挥它的影响力。美国东部有一些蝉类昆虫,每隔7年、13年或17年就会破土而出。它们通过演化自然形成了这种节奏,利用间隔质数年露面的方式来尽量减少与捕食者遭遇的机会。昆虫学家斯蒂芬·杰·古尔德在他1977年出版的畅销书《自达尔文以来》(Ever Since Darwin)中解释说,这些昆虫的潜在捕食者的生命周期通常为2~5年。
如果捕食者的生命周期为5年,而蝉每15年出现一次,那么蝉每一次破壳而出时都会遭遇捕食者的捕杀。但是,如果蝉出现的周期是比较大的质数,那么它们正好遇到捕食者的可能性就会大大减小。例如,假设蝉的周期为17年,那么它们每85年才会与捕食者遭遇一次(85=17×5)。由于13和17是质数,如果蝉间隔这么多年出现一次,捕食者就无法借助任何更小的数来追踪它们的生命周期。这些昆虫利用质数来增加它们的生存机会,的确是一件非常了不起的事。
最近,我在剑桥大学参加了一次教育学博士研究生研讨会,内容是讨论数学教育方面的研究进展。我的研究方向是理解“数学焦虑”产生的原因。另一位博士研究生(他的学位论文即将最终定稿)分享了他之前担任中学数学部主任时招聘数学老师的经历。他快速地接连问了我3个关于数据处理的问题,这些是他经常问求职者的问题。
第一个问题:“什么是众数?”
我回答道:“众数就是一组数据中出现次数最多的那个值。”
第二个问题:“什么是中位数?”
“中位数是把一组数据按升序(也就是从小到大)排列后处于中间位置的那个值。”
最后一个问题是:“什么是平均数(mean)?”
我回答说:“平均数就是用一组数据中所有数据之和除以这组数据的个数得到的数。”
我掉进了一个经典的陷阱。诚然,平均数可以用我提出的那个方法计算,但是他问我的是平均数的含义。精确是数学研究的要求之一,而我的回答没有给出平均数的确切定义,只是给出了平均数的计算过程。
平均数是一组数据的平均值(average),在计算过程中可以被视为这组数据的中心值。利用平均数,我们可以用一个数值表示一组数据。其中的差别是很细微的,但是如果我们利用上述方式计算出算术平均数,这个数值就可以用来表示这组数据。《牛津英语词典》将平均值定义为“一组数据中表示中心值或典型值的数字,具体来说,指众数、中位数或者平均数(其中平均数最常用)”,其中平均数可以利用前面介绍的方法计算出来。
因此,当被问及某个公司的平均工资或者某个国家的人口平均预期寿命时,我们其实是希望用一个数来表达这组数据(包含公司的全体员工或国家的所有人口)的典型值。我们通常指的是算术平均数,但要谨慎对待统计数据,我们必须始终清楚我们使用的是哪个平均值。
因为美国作家马克·吐温等人的缘故,“谎言、该死的谎言和统计数字”这个说法在大西洋两岸广为流行。马克·吐温把这句话的来源归于19世纪的英国首相本杰明·迪斯雷利,因为迪斯雷利似乎说过这样一句话:“世上有三种谎言:谎言、该死的谎言和统计数字。”因此,尽管这句话的出处存在争议,但它传递出的信息是,我们在实际应用中接触到数字时必须小心谨慎。
想象一下,假设我告诉你有两个可选择的工作机会。A公司和B公司各有10名员工,他们的平均年薪都是2.2万英镑左右。如果你收到了这两家公司的工作邀请,那么理论上这两家公司对你来说应该没有优劣之分。但在这种情况下,知道如何正确使用数据和平均值,就会对你的决定产生非常重要的影响。首先,这里使用的平均值是算术平均数:先计算出工资总和,再除以员工数。但是,进一步挖掘这些数据,你就会发现现实具有欺骗性:
A公司有9名员工每年挣1万英镑,而老板每年收入是12万英镑(1万英镑、1万英镑、1万英镑、1万英镑、1万英镑、1万英镑、1万英镑、1万英镑、1万英镑、12万英镑)。
B公司有9名员工每年挣1.5万英镑,而老板每年收入是8万英镑(1.5万英镑、1.5万英镑、1.5万英镑、1.5万英镑、1.5万英镑、1.5万英镑、1.5万英镑、1.5万英镑、1.5万英镑、8万英镑)。
这样一来,真相就一目了然了。B公司显然更适合大多数员工,但平均数容易让人产生误解。在这个例子中,我们可以借助薪酬的众数或中位数(中位数更好),做出更好的选择。B公司的薪酬中位数是1.5万英镑,对你来说显然是一个更有利的选择(当然,如果你得到的工作邀请是担任首席执行官,那就另当别论了)。
从英国经济这个宏观角度来看,这个例子所反映的微观问题就会变得非常清晰。2007年,英国约2/3的劳动人口的收入低于薪金的平均数。此处暂停,思考一下。出现这种情况,就意味着剩下的1/3的劳动人口中肯定有一些人的收入超过了平均水平,而且是远远高于平均水平。由于收入分配的缘故,收入极高者使平均数发生了扭曲。因此对于这类数据来说,平均数不是一个有效的度量标准,而薪酬中位数(处于中间位置的人的收入)更能反映“平均”收入。在我举的那个例子中,异常值会破坏算术平均数代表全体人口的可靠性。
所以,当我们开始学着数1,2,3等自然数的时候,我们的数字之旅就开始了。接着,我们遇到了负数,学会了如何用数字表示事物之间的关系,即使我们有的时候看不到这些事物也不要紧(我们可以看到2辆玩具车,但不能看到-2辆玩具车)。再然后,我们学会了对一组组数据进行比较,试着找出谁跑得更快,哪支足球队排名更高,哪所房子更值得买。数字给了我们一个客观的框架,使我们的主观观点有据可依。美国社会学家、民权活动人士W.E.B.杜波依斯有句话说得非常好:“掌握了数字之后,你看到的实际上就不再是数字,就像你读书时看到的不是单词一样。你看到的将是数字所表示的意义。”
趣味问答
“加雷斯·索斯盖特的足球到底有多重?”
让英格兰国家足球队主教练、创造西装马甲奇迹[3]的加雷斯·索斯盖特来测试一下你对统计平均值概念的掌握程度吧。他给他的英格兰队出了一道数学题。
索斯盖特拿出4只足球,交给了他的4名队员:队长哈里·凯恩、守门员乔丹·皮克福德,以及表演了电脑游戏《堡垒之夜》中舞蹈的杰西·林加德和德勒·阿里。这些足球的重量与寻常的足球不一样。索斯盖特给出了4条提示,然后要求队员们计算出每只足球的重量。
提示1:这些足球的平均重量是80克。
提示2:3只较重的足球总共重270克。
提示3:交给哈里·凯恩的足球最重,交给杰西·林加德的足球最轻,前者的重量是后者的3倍。
提示4:重量排在中间的2只足球正好一样重。
这些足球分别有多重?
[1] 板球运动中的“100分”,英文为“century”,原意为世纪。——编者注
[2] 原文为“1, 2, 3, 4, 5, once I caught a fish alive”(一二三四五,有一次我抓住了一条活鱼),是用谐音方法帮幼儿学习数学的英文顺口溜,此处用中文中类似的顺口溜代替。——编者注
[3] 西装马甲奇迹:指2018年世界杯期间,索斯盖特在教练席身穿的西装马甲受到广泛关注,同款马甲销量大增。——编者注