课堂上来不及思考的数学

978-7-115-58667-4
作者: 陈开
译者:
编辑: 李宁

图书目录:

详情

本书主要面向学有余力的小学高年级学生、中学生以及其他数学爱好者,从有趣的数学故事出发,由浅入深地介绍数论、代数、几何和组合数学等主要内容,并对概率、拓扑等内容进行了有益的拓展。同时,本书再现了多个与数学原理相关的历史、文化、科学和艺术场景,展现了数学之美以及数学和人文科学的统一。本书综合趣味性和可读性,以可以启发读者自主思考的方式——提供独特的分析和解决问题的思路,使读者能够举一反三、开拓思维。 本书可以作为学生的课外读物,也可作为数学爱好者进行数学思维训练和补充数学知识的资料。

图书摘要

版权信息

书名:课堂上来不及思考的数学

ISBN:978-7-115-58667-4

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

著    陈开

责任编辑 李宁

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315

内 容 提 要

本书主要面向学有余力的小学高年级学生、中学生以及其他数学爱好者,从有趣的数学故事出发,由浅入深地介绍数论、代数、几何和组合数学等主要内容,并对概率、拓扑等内容进行了有益的拓展。同时,本书再现了多个与数学原理相关的历史、文化、科学和艺术场景,展现了数学之美以及数学和人文科学的统一。本书综合趣味性和可读性,以可以启发读者自主思考的方式——提供独特的分析和解决问题的思路,使读者能够举一反三、开拓思维。

本书可以作为学生的课外读物,也可作为数学爱好者进行数学思维训练和补充数学知识的资料。

前  言

2020年12月底,家里收到了一个盼望已久的包裹,它来自俄罗斯圣彼得堡,里面是女儿在比利时参加第61届国际数学奥林匹克竞赛的纪念品。这是未满16岁的女儿第一次参加国际数学奥林匹克竞赛,她获得了一块宝贵的铜牌。

出人意料的是,包裹中除了女儿获得的铜牌,另有一块大小一样的奖牌。和女儿的那块铜牌略有不同,在这块奖牌的背面刻有一句话:“给我的老师,来自一名充满感激的学生。”女儿将这块奖牌送给了我,因为我是她的数学启蒙老师。

虽然女儿在数学竞赛中取得了不错的成绩,但我并不是数学家,大学时学的也不是数学专业,我只不过是从学生时代开始就一直钟情于课堂外的学习,恰好数学是我最喜欢的内容之一,而女儿潜移默化中受到了我的影响。

就像这本书,它也许是一本很普通的书,但是它可以在潜移默化中让你在课堂之外也爱上数学。

数学无疑是优美的。一个欧拉公式,集合了数学中最基本的两个整数0和1、圆周率π、自然常数e、虚数单位i,形式简明而和谐,含义独特而深远。同时,数学也是枯燥的、乏味的、难以攻克的,令不少人望而生畏、敬而远之。因此,让数学变得生动有趣,让大家在课外仍然能对数学保持持续的兴趣,是我写这本数学书的目的。

拿到这本书后,你只需要找一个惬意的下午茶时间,带上一支笔和一张纸,从前往后顺畅地阅读。你不需要预设任何目标,不需要记住公式,甚至不需要做对所有的例题,只需要把读这本书当作一种消遣。

你会看到,书中有“斤斤计较”的小货郎,有在乌有寺前品茗对弈的师徒俩,有和乌龟比赛的阿基里斯,还有一群面面相觑的修道士;书中还有编修历法的里利乌斯,有潜心计算的尚克斯,有“激怒了上天”的闵可夫斯基,也有互相倾轧的伯努利兄弟;同时,你还将了解到悉尼歌剧院、结构对称的药物分子、诗人和文学,以及我们难以想象的高维空间里蕴含的数学之美。你会发现,原来数学并不仅仅是枯燥定义的累积,也不全是烦琐公式的堆砌,它更是人类智慧的基础和精华。

这本书的写作初衷是我想写一本特别适合中小学生在课堂外阅读的图书。它不是教材,也不是竞赛专用书,所以对大多数课内涉及的内容本书不作过多的讲解,取而代之的是通过生动的背景故事、活泼的文字、通俗的比喻和现实中的示例,让学生们的思维可以从课内知识点延伸到课外的应用,乃至其他学科之中,做到举一反三,融会贯通。

本书分为4章,包括“数学的女王”“数学的音符”“自然的曲线”“演绎的学问”,分别对应“数论”“代数”“几何”和“组合数学”。这4个方面内容的递进,大致上是中小学数学课本内容从易到难、从点到面的延展过程,同时也是数学竞赛题的4个主要类别。在本书的第1章,你将了解到整数的一些基本性质,比如数的进制、奇偶性以及素数和合数;在第2章,你会接触到分数、数列、圆周率和函数等内容,其中,部分内容(比如级数和逼近)会涉及高等数学的一些基本思想,但我相信你读起来不会觉得枯燥或者高不可攀;第3章的内容和几何以及拓扑有关,你将了解到圆锥曲线、摆线等各种曲线,还将触及图论和高维曲面的基础知识,后者需要你更多的想象力;第4章的内容是组合数学,通俗地讲,这是一个“大杂烩”,包括容斥原理、抽屉原理、概率论和博弈论等方面的知识,它们虽然在课本中较少出现,却是现实生活中最常碰到的数学原理。

本书可以作为课外阅读、数学思维训练和数学知识科普的补充读物,主要面向学有余力的小学高年级学生、中学生,以及其他数学爱好者。对于阅读目标为扩大知识面的读者,你们可以更多地关注本书中涉及的数学的历史性和多元性,即数学背后深厚的人文历史、数学家们鲜明的人格特点,以及数学原理向其他学科的延伸和应用等方面。对于阅读目标为加深理解课内知识点的读者,你们可以侧重于本书中关于知识点的讲解和延伸内容,在加深理解的基础上做到有所拓展。对于以准备数学竞赛为目标的读者来说,你们可以把重点放在本书中的例题上,尤其是一些进阶的、本身就出自竞赛的例题,做到理解到位和举一反三。读者朋友们也可以通过邮箱wiskclub.be@gmail.com与我联系。

最后,希望大小读者朋友们都能做到开卷有益,利用这本课堂外的图书训练数学思维。同时,任何的成功都离不开个人的努力和磨炼,所以当你遇到不懂的内容时,不要轻易放弃,仔细阅读,反复琢磨,相信你一定可以战胜一个又一个的挑战,实现自己的目标!

第1章 数学的女王

高斯曾经说过,“数学是科学的皇后,数论是皇后的皇冠”。 老货郎需要用 6 个砝码称出1~40斤(1斤=500克)糖果的所有整数重量(质量的俗称),为什么小货郎可以只用 4 个?在象棋棋盘上,为什么马一定要跳偶数次才能回到原来的位置? 把已知的最大素数印在一本书上,这本书将会有多少页?这些问题涉及数论最基本的内容:数的进制、 整数的奇偶性,以及素数的性质。 你将在本章中找到答案。

1.1 偷懒的小货郎

“易有太极,是生两仪,两仪生四象, 四象生八卦。”

——《易经系辞上传》

以前,有个老货郎沿街卖糖果,糖果以1斤(1斤=500克)为最小售卖单位,他一次最多带40斤出门。老货郎称糖果用的是天平(图1.1.1),所以除了货物以外,他还需要带上一套能够称出1~40斤整数重量糖果的砝码。

图1.1.1 老货郎称糖果使用的天平

单个砝码的重量从1斤到40斤的都有,老货郎家有好几套这样的砝码。以前卖货时,他总是带上这样一组共6个砝码出门:1个1斤、2个2斤、1个5斤、1个10斤、1个20斤。不同重量的砝码类似于不同面额的钞票,老货郎可以通过这些砝码的组合,得到1~40斤的任意一个整数重量。比如,要称出17斤的糖果,只需在天平的另一端放上2斤、5斤和10斤3个砝码就可以了;要称出29斤的糖果,则需要放上2个2斤、1个5斤和1个20斤共4个砝码。

后来,老货郎招了个徒弟,即小货郎,出门卖货时背砝码的任务也就交给了小货郎。砝码总重40斤,小货郎年轻力壮倒不嫌砝码重,只是觉得大大小小共 6个太麻烦,还很容易弄丢。既然砝码是卖货必须要用的,小货郎心里虽然有想法,嘴上却也没有说什么。

每天夜里躺在床上,小货郎就开始琢磨:是不是可以少带些砝码,同样可以称出1~40斤的整数重量?

为了简化问题,小货郎先从较小的重量开始考虑:如果老货郎最多只卖7斤糖果,那么最少需要哪些砝码呢?因为糖果的最小售卖单位是1斤,所以1斤这个砝码是肯定需要的;同时最多要称出7斤糖果,所以所有砝码的总重量不会低于7斤。这样,最少也需要2个砝码了。

按照老货郎根据钞票面额确定选用哪些砝码的做法,实现1~7斤任一整数重量的砝码组合可以是1个1斤、3个2斤,或者1个1斤、2个2斤和1个5斤,无论哪种组合都需要4个砝码。如果使用其他重量的砝码呢?那么可以是1个1斤、1个2斤、1个4斤,这样3个砝码就可以通过加法组合出1~7斤的任一整数重量。

这种组合可以比老货郎的办法少带1个砝码!

类似地,对于1~15斤的任一整数重量,可以用4个砝码通过加法组合实现,4个砝码分别是1斤、2斤、4斤和8斤。比如要称出11斤的糖果,可以使用1斤、 2斤和8斤3个砝码;要称出14斤糖果,可以使用2斤、4斤和8斤3个砝码。

小货郎把4个砝码从大到小依次放好,从左到右依次是8斤、4斤、2斤和1斤。他发现对于1~15斤的任一整数重量,只需要用二进制来表示它,然后使用出现1的相应位置上的砝码来称重即可。比如十进制中的(11)10,用二进制表示就是(1011)2,从左到右表示使用8斤、2斤和1斤的砝码;十进制中的(14)10,用二进制表示就是(1110)2,表示使用8斤、4斤和2斤的砝码。

因为1~15的任意一个整数可以且唯一可以用一个4位数的二进制表示,所以用8斤、4斤、2斤和1斤这4个砝码就可以通过加法组合出1~15的任意一个整数重量。

小货郎依此类推,得出:要表示1~3斤的任一整数重量,用2个砝码即可;1~7斤需要3个砝码;1~15斤需要4个;1~31斤需要5个……结论:对于1~2n-1斤的任一整数重量,只需要n个砝码就可以了,其重量分别为1斤、2斤……2n-1。不过很遗憾的是,要表示1~40斤的任一整数重量,因为40大于25-1,所以小货郎仍然至少需要6个砝码。

那么,是不是还有别的办法可以让他偷个懒,少带些砝码呢?

小货郎的目光从天平的一边移到了另一边,所有的砝码可以单独放在一边,是不是也可以把部分砝码和糖果放在另一边呢?以1斤和3斤两个砝码为例, 如果只把砝码单独放在一边,通过加法组合,可以得到1斤、3斤和4斤3个不同重量;如果同时可以把一部分砝码放在另一边,那么通过减法组合,还可以得到2斤这个重量,比如把3斤的砝码放在一边,1斤的砝码和糖果放在另一边。因此,实际上使用1斤和3斤两个砝码,通过加法和减法组合,就可以得到1~4 斤的任意一个整数重量。

受到这个发现的鼓舞,小货郎又拿出了9斤这个砝码,他兴奋地发现,使用9斤、3斤和1斤这3个砝码,通过在天平两边的摆放,可以得到1~13斤的所有整数重量。比如要得到11斤糖果,可以将9斤和3斤砝码放在一边,1斤砝码和糖果放在另一边;要得到7斤糖果,可以将9斤和1斤砝码放在一边,3斤砝码和糖果放在另一边。

这个方法的可行性是很容易被证明的:因为使用3斤和1斤砝码可以得到1~4斤的任一整数砝码净重,那么通过减法组合,将9斤砝码放在与净重砝码侧相对的另一边,就可以得到5~8斤的任一整数重量;同样通过加法组合,将9斤砝码放在与净重砝码相同的一边,就可以得到10~13斤的任一整数重量。因此,使用这3个砝码,就可以得到1~13斤的任一整数重量(表1.1.1)。

表1.1.1 使用1斤、3斤、9斤3个砝码得到1~13斤任一整数重量的糖果

糖果净重(斤),天平左盘

减法砝码(斤),天平左盘

加法砝码(斤),天平右盘

1

1

2

1

3

3

3

4

1, 3

5

1, 3

9

6

3

9

7

3

1, 9

8

1

9

9

9

10

1, 9

11

1

3, 9

12

3, 9

13

1, 3, 9

并且,这个规律可以外推到更大的重量:用1斤、3斤、9斤和27斤4个砝码,可以得到1~40斤的任一整数重量;用1斤、3斤、9斤、27斤和81斤5个砝码,可以得到1~121斤的任一整数重量……由此得出的结论:对于1~斤的任一整数重量,只需要n个砝码就可以了,其重量分别为1斤、3斤……3n-1

对于小货郎来说,从明天开始他带上4个砝码出门就可以了,现在他可以安心地睡个觉了。

我们再来看看小货郎要带的那些砝码,1斤、3斤、9斤、27斤,现在将这些砝码由大到小从左到右排列,然后把1~40中的任一整数用三进制来表示, 是否可以得到某种对应关系呢?

比如十进制中的(22)10,用三进制表示就是(211)3。问题来了,在二进制中,每个数位上的0表示不用该砝码,1表示使用该砝码;在三进制中,非零的数位上除了1还有可能是2,这意味着只用加法组合的话,我们还可能需要另外一套砝码。不过小货郎聪明地发现了砝码还可以放在天平的另一边,也就是说可以使用减法组合。(211)3也可以表示为(1011)3-(0100)3,即(27+3+1)-9=22;或者说27斤、3斤和1斤3个砝码放在一边,9斤那个砝码放在糖果的一边,我们就得到了22斤这个重量。类似地,要得到35,可以利用(35)10=(1022)3=(1100)3-(0001)3,即(27+9)-1=35。

如果我们扩展一下三进制的定义,从右至左将数位上的每一个2都改为-1,同时向前一位进位,0和1则保持不变。这样,(211)3变成了(1-111)3,表示33-32+31+30=22;(1022)3则变成了(110-1),表示33+32-30=35。在扩展的三进制定义中,每个数位上要么是0,要么是1或者-1,0表示该砝码不用,-1表示该砝码和糖果放在同一边,1表示该砝码放在天平的另一边。依此定义,一个4位数其最大值为(1111)3,即27+9+3+1=40,所以使用这4个砝码就可以表示1~40的任一整数重量。

从小货郎的例子我们可以看出,不同基数(又称底数)的数制表示法有着不同的效率。二进制每个数位上只有两个状态,即0和1,但它需要更多的数位来表示较大的数;十进制每个数位上有0~9共10个状态,但对于同样大小的数,它需要的数位比二进制要少很多,比如同样表示1024,十进制只需要4个数位,而二进制需要11个数位。

哪一个基数的数制是最优的?对此并没有一个简单的答案。如果从信息传递效率的角度来看,考虑所谓底数经济度(radix economy),那么不同基数的数制具有不同的效率。

简单来说,底数经济度E(b,N)= b logb N+1x 符号表示将x向下取整。以N = 999为例,二进制的基数b = 2,用二进制表示999需要10个数位,所以E(2, 999)等于20;八进制的基数b = 8,用八进制表示999需要4个数位,所以E(8, 999)等于32;十进制的基数b = 10,用十进制表示999需要3个数位,所以E(10, 999)等于30。相比较而言,这3种数制中,二进制的效率最高。

那么对于所有基数,是否二进制的效率最高呢?如果把E(b,N)= b(logbN +1)看作一个关于变量b的连续函数,在函数取最小值时,b等于自然常数e。也就是说,如果采用自然常数e作为基数,效率最高。如果限定基数必须为整数,因为 e =2.71828 … ,所以b = 2 或者3时E较小。通过比较,b = 3时E最小,也就是说,三进制是最有效率的数制。

这个结论和小货郎想出来的方法是相符的, 我们把使用-1、0和1的三进制表示法叫作三进制的平衡表示法。计算机科学家高德纳(Donald Knuth)在他的名著《计算机程序设计艺术》中曾经表示,平衡三进制是最美的数学体系。这不仅因为任何整数都可以通过加减3的幂得到(小货郎的天平法),而且和二进制的“非黑即白”的二态性相比,平衡三进制还提供了一个平衡态0,即我们在平衡三进制中除了可以用-1和1来表示确定的两个状态,还可以用0来表示“不 确定”。很显然,和二态性相比,这种三态性更符合现实中的情况,也更适合描述现实世界。

既然三进制比二进制更高效,为什么计算机采用的都是二进制呢?

事实上,在人类历史中确实存在着使用三进制设计计算机的努力。因为三进制在理论上更为高效,苏联的科学家曾经在长达20年的时间里试图在三进制计算机领域取得突破。1958年,第一台三进制计算机Setun由谢尔盖•索博列夫(Sergei Sobolev)和尼古拉•布鲁先佐夫(Nikolay Brusentsov)设计成功。1960年,Setun 通过公测,并投入批量生产。直到20世纪70年代末,二进制计算机凭借其在电压高低、电路开关二态性方面的天然优势几乎占据了整个市场之后,苏联对三进制计算机的研发才终止。

由此可见,用不同基数的数制来表示十进制数,有时候会给我们带来不同的思路,达到简化问题和计算过程的目的。

下面是一道经典的智力题:工厂生产了10批乒乓球,质量合格的乒乓球每个重2.7克,已知10批产品中有1批出了质量问题,这批乒乓球每个都重2.8克,请问如何使用天平,只称一次就能知道是哪批产品不合格?

这道题目相信很多小学生都会做,做法是将10批产品依次编为1~10号, 再依次从1号批次产品中取出1个乒乓球,2号批次产品中取出2个乒乓球,依此类推,10号批次产品中取出10个乒乓球,然后将这55个乒乓球一起放在天平上称重,将实际质量减去55个乒乓球的核定质量(2.7×55=148.5克)得到超出质量,再将超出质量除以0.1得到超重乒乓球数。如果超重乒乓球数为1,就表示1号批次产品不合格;如果超重乒乓球数为2,就表示2号批次产品不合格……如果超重乒乓球数为10,就表示10号批次产品不合格。

现在我们将题目的条件改一下:已知不止一个批次的产品出了质量问题, 所有问题批次的乒乓球每个重量都是2.8克,其他合格批次的乒乓球每个重量都是 2.7克,如何通过天平称一次,就能知道哪几个批次质量不合格呢?

显然,用老办法解决不了新问题:如果最后得到超重乒乓球数为5,究竟是 5号批次的产品出了问题,还是2号批次和3号批次的产品都出了问题,我们不得而知。

这个时候,我们需要改变每个批次乒乓球的称重数量:按照二进制的思想,可以从1号批次产品中取出1个乒乓球,2号批次产品中取出2个乒乓球,3号批次产品中取出4个乒乓球,依此类推,10号批次产品中取出512个乒乓球,然后将这总共1023个乒乓球一起称重,将实际重量减去1023个乒乓球的核定质量(2.7×1023=2762.1克)得到超出重量,再除以0.1得到超重乒乓球个数。此时,如果超重乒乓球数为1,就表示1号批次产品不合格;如果超重乒乓球数为2,就表示2号批次产品不合格;如果超重乒乓球数为3,就表示1号和2号批次产品都不合格。也就是说,如果把超重乒乓球数用二进制表示,从右到左的数位分别表示1号、2号……10号批次产品,哪个数位上数字为1就表示哪个批次的产品不合格

这个解法的精妙之处在于,通过将第n个批次的乒乓球取样个数从线性的n 改为指数的2n-1 ,避免了线性组合带来的不确定性。因为指数取样法中不可能出现进位叠加,这样就保证了二进制表示的唯一性,可以准确地将不合格产品的批次定位出来。

另外一道经典的“小白鼠试药”问题也很好地体现了二进制的威力。题目是这样的:有1000个外表一模一样的瓶子,其中999瓶中装的是普通的水,只有一个瓶子装的是毒药,小白鼠喝了水会平安无事,喝了毒药的话哪怕只喝了一点点也将在一天内死去。现在你有10只小白鼠,如何在一天的时间内找出哪个瓶子里装的是毒药?

这道题目的解答是非常经典的。将瓶子依次编号为0~999,然后将编号转换为10个数位的二进制编号,比如12号瓶的二进制编号为(0000001100)2,311号瓶的二进制编号为(0100110111)2 。然后将小白鼠也编为1~10号,1号小白鼠依次走过所有的瓶子,如果瓶子的二进制编号的右起第1数位(即二进制最低位)为1就喝上一口,如果数位为0就跳过;2号小白鼠依次走过所有的瓶子,如果瓶子的二进制编号的右起第2数位为1就喝上一口,如果数位为0就跳过……依此类推,10号小白鼠依次走过所有的瓶子,如果瓶子的二进制编号的右起第 10数位(即二进制最高位)为1就喝上一口,如果数位为0就跳过。

这样到了第二天,10只小白鼠中有一些平安无事,其他的小白鼠中毒身亡。我们将小白鼠按照1~10的编号从右到左排列,如果平安无事就在数位上记0,如果中毒身亡就记1,这样我们得到一个10个数位的二进制数,这个二进制数就是装有毒药瓶子的二进制编号。

举例来说,我们假设311号瓶装的是毒药,其二进制编号为(0100110111)2,根据上述规则,1号、2号、3号、5号、6号、9号小白鼠都喝了这个瓶子装的毒药,而4号、7号、8号和10号小白鼠都将跳过这个瓶子。因此在第二天,1号、2号、3号、5号、6号、9号小白鼠都中毒身亡,相应地将这几只小白鼠对应的数位标记为1,其他数位标记为0,我们就能得到(0100110111)2,即推出311号瓶子里装的是毒药(表1.1.2)。

表1.1.2 “小白鼠试药”示例

0

10号

白鼠

1

9号

白鼠

0

8号

白鼠

0

7号

白鼠

1

6号

白鼠

1

5号

白鼠

0

4号

白鼠

1

3号

白鼠

1

2号

白鼠

1

1号

白鼠

0号瓶二进制编码

0

0

0

0

0

0

0

0

0

0

1号瓶二进制编码

0

0

0

0

0

0

0

0

0

1

2号瓶二进制编码

0

0

0

0

0

0

0

0

1

0

3号瓶二进制编码

0

0

0

0

0

0

0

0

1

1

311号瓶二进制编码

0

1

0

0

1

1

0

1

1

1

999号瓶二进制编码

1

1

1

1

1

0

0

1

1

0

现在,我们再进一步:如果你有两天的时间,有时间进行两轮试药,同样要在1000个瓶子里找出唯一的一瓶毒药,最少需要几只小白鼠呢?

9只小白鼠可以吗?9只小白鼠可以占据9个数位,9个数位的二进制数最大为511;也就是说,按照老办法,9只小白鼠在第一天可以测试512个瓶子[1]。如果毒药瓶在这512个瓶子中,那么第一天就能被找到;如果毒药瓶在剩下的 488瓶中,那么9只小白鼠平安无事,第二天仍然可以用于最多512瓶的测试,而因为第二天只剩下488瓶,所以任务可以圆满完成。

[1] 0~511编号下共有512个瓶子。

那么8只呢?8只小白鼠可以占据8个数位,8个数位的二进制数最大为255;也就是说,按照老办法,8只小白鼠在第一天可以测试256个瓶子。如果毒药瓶在这256个瓶子中,那么第一天就能被找到;但如果毒药瓶在剩下的744瓶中,那么即便第二天我们还有8只平安无事的小白鼠,它们在一天中最多也只能完成256个瓶子的测试,而剩下的未知瓶子还有488个,所以按照老办法我们无法完成任务。

那么有没有别的办法呢?

有!我们可以利用三进制,利用三进制编码的方法,我们只需要7只小白鼠就能在两天内找到装有毒药的瓶子。

具体做法是这样的。类似地,将1000个瓶子进行三进制编码,因为37 = 2187,所以这个三进制编码总共有7位。同样将小白鼠编为1~7号,1号小白鼠依次走过所有的瓶子,如果瓶子的三进制编号的右起第1数位为2就喝上一口,如果数位为0或者1就跳过;2号小白鼠依次走过所有的瓶子,如果瓶子的三进制编号的右起第2数位为2就喝上一口,如果数位为0或者1就跳过……依此类推。这样,在第二天统计小白鼠的健康状况时,如果某个数位对应的小白鼠死去,就表示有毒药瓶子的三进制编码在该数位上为2;如果某个数位对应的小白鼠还活着,就表示有毒药瓶子的三进制编码在该数位上为0或者1。然后在第二天,用幸存的小白鼠继续在它们所在的数位试药,在第二轮的试药中,让每只活着的小白鼠尝试自己对应数位上三进制编号为1的瓶子。如果小白鼠死去,说明有毒药瓶子的三进制编码在该数位上为1;如果小白鼠幸存,说明该数位为0。这样, 经过两轮试药,有毒药瓶子三进制编码的所有数位都将被唯一确定,我们就能知道哪个瓶子装有毒药。

不失一般性,如果有b-1天时间,那么根据类似的方法只需要n只小白鼠就能从bn个瓶子里找出唯一装有毒药的瓶子来。仔细看看这个公式,是不是和底数经济度 E(b, N)的公式很相似呢?

彩蛋问题

二进制整数(111)2 和三进制整数(222)3 哪个更大?据此推断一下,二进制无限循环小数(0.1111…)2和三进制无限循环小数(0.2222…)3 哪个更大?

本节术语

数的进位制:利用进位制,可以使用有限个不同的数字符号来表示所有的数值。在一种进位制中,使用的不同数字符号的数目被称为这种进位制的基数或底数。如果一个进位制的基数为n,那么这个进位制被称为n进位制,或者n进制。

二进制:指以2为基数的记数系统。在二进制中,通常用一串数字0和1来表示某个整数。在数字电子电路中,逻辑门采用了二进制,现代的计算机系统都用到了二进制。

底数经济度:记作E(b, N),指的是对于基数(底数)b来说,数N所需要的开销。

三进制的平衡表示法:也称为对称三进制,是一种以3为基数,以-1、0、1为数码的三进制记数体系。

1.2 猜先的小和尚

“无可奈何花落去,似曾相识燕归来。”

—— 晏殊《浣溪沙一曲新词酒一杯》

天峰山上已是初夏时节。微风吹过,乌有寺前的桃花纷纷飘落。小和尚将石桌上的花瓣细细扫去,沏上一壶香茗,又将棋具摆好,在黑棋一侧坐下,静静等候老和尚的到来。

很久以来,课诵之后下一盘棋已经成了乌有寺两位主人之间固有的娱乐活动。这么多年下来,桃树的树冠长成了石桌的伞盖,老和尚的眉梢已然发白,小和尚的棋艺也已经从屡战屡败长进到了能和老和尚大致两分——甚至,执黑棋时的赢面还要稍许大一点儿。

“还是老规矩。”老和尚抓起一把白子握在手心,然后伸出手笑眯眯地看着小和尚。小和尚默默拈起一颗黑子,放在棋盘上。老和尚打开手掌,里面躺着5颗白子。

又猜对了!小和尚开心地拿起黑子,走下自己的第一步。

老和尚手中握着奇数个白子,小和尚拿出一颗黑子,表示猜为奇数,是为猜对;如果小和尚拿出两颗黑子,表示猜为偶数,那么将猜错。猜对者执黑子先行,猜错者执白子,这就是围棋中的猜先。

换个说法,考虑双方拿出的黑子和白子数目之和,如果和为偶数则表明猜对,如果和为奇数则表明猜错。因为奇数加奇数为偶数,偶数加偶数也为偶数,也就是因为同为奇数和同为偶数的两个数的和都是偶数,只有奇数加偶数时和才会为奇数。

在对奇数和偶数的长期使用中,人们渐渐地在文化传统方面形成了一定的偏好,而这种偏好在不同国家或者不同文化中不尽相同。整体上,中国人更喜欢偶数,认为“好事成双”,反之,“形单影只”就显得很凄凉。所以在我们的传统文化中,对联是两联,律诗是八句,送礼要送双数,结婚也要用双喜字。当年“飞将军”李广戎马一生,战功无数,却始终得不到汉武帝的青睐,汉武帝给出的理由是“李广老,数奇”,意思是李广除了年龄大以外,命数也不吉利。不过,凡事都有例外,比如因为发音的原因,4这个偶数就不怎么受欢迎;又比如因为十进制的数字中 9 是最大的,所以9这个奇数往往代表着尊贵和权威。

在日本,人们的偏好恰恰相反,他们在整体上更喜欢奇数。日本人送礼一般送奇数个,比如3个茶杯——理由很简单:因为偶数可分,奇数不可分(在数学上没毛病)。所以遇到日本朋友结婚,你千万不能按照中国人的习惯送一对礼物。日本人喜欢的奇数也反映在节日上,每年的3月3日是女孩节,5月5日是男孩节,再加上从中国文化中引入的七夕节和重阳节,几乎每个奇数都被用在了节日上。有意思的是,在诗歌上日本人也表现出了对奇数的喜爱,和中国的律诗不同,日本俳句共17个字音,分为3句,每句的字音数分别是5、7、5。你看,这些全是奇数。

在数学上,奇数和偶数是组成自然数乃至整数的基本单位。自然数是人们认识的所有数中最基本的一类数,也是自然和生活中最常见的一类数。自然数可以分为奇数和偶数,其中偶数能够被2整除,而奇数不能被2整除。

所以, 数的奇偶性(parity)是自然数最基本的特性之一

在四则运算和幂运算中,奇偶性的变化一直是自然数和整数的基本性质之一。

(1) 奇数+奇数=偶数;偶数+偶数 =偶数;奇数+偶数=奇数(围棋的猜先)。

(2)两个整数之和与这两个整数之差的奇偶性相同。

(3)奇数×奇数=奇数;偶数×偶数=偶数;奇数×偶数=偶数。

(4)若干个整数之积为奇数,则这些数必然全为奇数;若干个整数之积为偶数,则这些数中至少有一个是偶数。

(5)两个整数之和是奇数,则这两个整数的奇偶性相反;两个整数之和是偶数,则这两个整数的奇偶性相同。

(6)若干个整数之和为奇数,则这些数中必然存在奇数,且奇数的个数为奇数个;若干个整数之和为偶数,则如果这些数中有奇数,那么奇数的个数必然为偶数个。

……(考虑到我国的传统,这里只列出偶数条性质。)

这些性质看起来很简单,在不少组合数学的问题中却有着很大用处。不过,要将奇偶性很好地应用在组合数学问题中,通常我们还需要先将组合问题抽象化,建立起合适的数学模型。

比如最常见的跳马问题:在国际象棋(或者中国象棋)的棋盘上, 马能不能通过跳奇数次回到它原来的位置? 不论是国际象棋还是中国象棋,马的跳法都“日”字为基础。我们以国际象棋为例,因为它的棋盘更容易让人理解如何使用数的奇偶性。

在国际象棋的棋盘上, 不论马跳向哪个方向,其所在格子的颜色都会发生变化。比如图1.2.1所示的棋盘中,跳一次后,黑马所在的格子一定会从白色变成黑色。如果再跳一次,黑马所在的格子的颜色一定会再次发生变化,从黑色又变回成白色。

如果我们把图1.2.1中格子的白色看成偶数,黑色看成奇数,那么可以发现每跳一次,马所在格子的奇偶性就会发生一次变化。所以,图1.2.1中的黑马跳完奇数次以后,它所在的格子一定是黑色格子(奇数);这只黑马跳完偶数次以后,它所在的格子一定是白色格子(偶数)。换言之,如果要让黑马跳回原来所在的白色格子(偶数),那么它其间所跳的次数必然是偶数;如果黑马跳了奇数次, 因为它出发时所在的格子为白色,所以无论它途中向哪个方向跳,最后一定会停留在奇数即黑色格子上,无法回到原来的白色格子上。

图1.2.1 国际象棋中马的跳法

在跳马问题中, 每一步过后奇偶性都会发生变化,所以要使得最后结果的奇偶性不变,就必须经过偶数步。在另一些问题中,每一步或者每一次操作后某个计数的奇偶性保持不变,那么在若干次操作之后,这个计数最后的奇偶性也不会变化。

比如握手问题: 在某个聚会的人群中,握过奇数次手的人总是有偶数个。这句话念起来有些拗口,但念几遍后应该不难理解。最开始参加聚会的每个人都没有和其他人握过手,所以每个人的握手次数都为 0,所有人握手次数总和也为 0。现在,人们开始互相握手,每发生一次握手都涉及握手的双方,所以这两个人各自的握手次数都增加1,所有人握手次数总和增加2。在若干次握手之后,每个人握手的次数有多有少,可能是奇数,也可能是偶数,但所有人握手次数总和一定是偶数,因为每发生一次握手,不论发生在哪两个人之间,所有人握手次数的总和总是增加2,它的奇偶性在整个过程中不会发生变化。根据奇偶性基本性质第6条:若干个整数之和为偶数,则如果这些数中有奇数,那么奇数的个数必然为偶数个。所以,我们可以得出 “聚会中握过奇数次手的人总是有偶数个”的结论。

再来看一道格子题。将正方形 ABCD分成 n2 个大小一样的小正方形,然后对所有小正方形的顶点进行涂色,将位于对角线位置的AC 两点涂成红色,BD两点涂成蓝色,其他小正方形的顶点任意涂成红色和蓝色中的一种。试证明,恰有3个顶点颜色相同的小正方形的个数必然是偶数。

一个正方形有4个顶点,任意涂2种颜色,只可能存在3种情况:4个顶点同一种颜色;3个顶点同一种颜色,另一个顶点另一种颜色;2个顶点一种颜色,另2个顶点一种颜色。同时,我们还注意到,某些顶点分属多个小正方形,这些顶点的颜色将被多次计算。比如图1.2.2中左上角的小正方形,顶点A只属于这个小正方形,位于大正方形边上的顶点XY分别属于2个小正方形,而位于大正方形内部的顶点Z则分属于4个小正方形。

图1.2.2 方格涂色问题

我们把涂成红色的顶点记为0,涂成蓝色的顶点记为1,将每个小正方形编号为1~n2。设第i 个小正方形的4个顶点的数字之和为Si,那么根据上面的分析,恰有3个顶点同色的小正方形其S的值要么为1(3个红色顶点),要么为3 (3个蓝色顶点),即必然为奇数;有4个顶点或者2个顶点同色的小正方形其S的值要么为0(4个红色顶点),要么为2(2个红色顶点,2个蓝色顶点),要么为 4(4个蓝色顶点),即必然为偶数。

现在考虑所有小正方形 S 值的和:

S = S1+S2+…+Sn2

(1.2.1)

因为红色顶点的值为0,所以这里只考虑蓝色顶点。设大正方形内部的蓝色顶点共有p个,因为每一个顶点分属4 个小正方形,所以它们在S中分别被计算了4次,它们的贡献是 4p;设大正方形边上的蓝色顶点(不包括BD点)共有q个,因为每一个顶点分属2个小正方形,所以它们在S中分别被计算了 2次,它们的贡献是2q;再加上BD点,分别只被计算过1次,所以有

S = 4p + 2q +2

因为pq都是整数,所以S一定是偶数,又因为式(1.2.1),所以证明了所有n2个小正方形中,S为奇数的小正方形的个数一定为偶数,即恰有3个顶点颜色相同的小正方形的个数必然是偶数。

除了跳马、握手、方格涂色这类比较“直观”的问题,数论和组合数学问题也经常用到自然数的奇偶性。

假设有2021个自然数,如果任意去掉其中一个数后,剩下的2020个数总是可以有办法分为两组,每组1010个数,使得这两组数字的和相等。试证明,原来的2021个数是相等的2021个数。

首先来分析一下这些数字的奇偶性。将这2021个数记为aii =1,…,2021,假设去掉a2021,剩下的2020个数字分为两组,两组数字的和分别为S1S2,使得 S1 = S2 ,那么有

S1 + S2 = 2S2

这说明去掉a2021这个数后,其他2020个数字的和为偶数。

考虑到去掉数字的任意性,我们可以得出结论:这2021个数字的奇偶性相同,即要么是2021个奇数, 要么是2021个偶数。这个结论很好证明:假设这2021 个数字中存在奇偶性不同的两个数字,不妨设为apaq,设其他2019个数字之和为Sr。根据题意,在去掉ap的情况下,aq+ Sr是个偶数;在去掉aq的情况下,ap +Sr 也是个偶数;所以aq + Sr + ap + Sr = aq + ap + 2Sr 是个偶数,这说明apaq 奇偶性相同,与假设条件矛盾。

现在,不妨设ai中最小的一个数为 a1,令bi = ai-a1,因为a1ai奇偶性相同,所以bi一定为偶数,而且b1 = 0。同时,因为S1 - 1010a1= S2 - 1010a1,所以新得到的这2021个数bi仍然具有符合题意的性质,即从bi中任意去掉一个数后,剩下的2020个数总能分成两组,使得其和相等。

既然 bi一定为偶数,不妨令,且有 c1= 0。同时,因为 ,所以新得到的这2021个数 ci同样具有符合题意的性质,因此 ci也都是偶数。由此可知,如果继续对ci做除以2的操作,新得到的2021个数仍然具有符合题意的性质,这个操作可以无限地进行下去,每次操作后得到的2021个数一直具有符合题意的性质。而我们知道,一个有限大小的整数中 2 的因子的个数是有限的,除非它等于0。

综上所述, 我们可以得出bi = 0 的结论,即不仅b1 = 0,实际上所有的 bi 都等于0。然后从 bi = ai - a1 反推,得出所有的ai 都相等,即原来的2021个数是相等的2021个数。原题得证。

最后,让我们来看看奇偶性在另外一道组合题中的应用。

假设有1,2,3,…,2017,2018,1,2,3,…,2017,2018一共4036个数,能否将这些数字以某种顺序排成一排,使得两个数字1之间恰好夹有1个数字,两个数字2之间恰好夹有2个数字……两个数字2018之间恰好夹有2018个数字?

答案是不可以。

假设按照某种顺序可以实现题意要求,我们把这4036个位置从左到右用1~ 4036编号,同时,用 i = 1,2,…,2018表示 1~2018的某个数,显然每一个数 i在这个排列中都占有两个位置,设靠左的位置为 ai,靠右的位置为 bi,易知1ai bi 4036;又因为两个数 i 之间夹有i 个位置,所以有

bi - ai = i + 1

1~2018中共有1009个偶数,对于某个偶数ii+1为奇数,所以aibi奇偶性不同,即两个数i一个占据了偶数位,一个占据了奇数位。对于这1009对偶数来说,它们一共占据了1009个偶数位和1009个奇数位。

此外,1~2018中还有1009个奇数,对于某个奇数ii+1为偶数,所以aibi奇偶性相同,即两个数i要么一起占据了偶数位,要么一起占据了奇数位。不妨设在这1009对奇数中,一起占据了奇数位的奇数有k个,它们一共占据了2k个奇数位。

综合起来看,总共4036个位置中共有2018个奇数位,其中1009个奇数位被偶数所占据,2k个奇数位被奇数所占据。所以有

2018 = 1009 + 2k

显然,对于整数 k,等式左边为偶数,而右边一定为奇数,等式不可能成立。因此,符合题意的排列是不存在的。

本节术语

奇偶性:是整数的一种基本性质,整数的奇偶性在其四则运算和幂运算中存在基本的传递规则,在组合数学题中常常会利用某种计数的奇偶性变化来解决问题。

组合数学:是组合计数、图论、代数结构、数理逻辑等的总称,主要研究满足一定条件的组态(也称组合模型)的存在、计数以及构造等方面的问题。

1.3 没有烦恼的作家

"Two, three, five, seven. Those are all prime numbers, there's no way this is a natural phenomenon!"

Contact

“2,3,5,7。它们都是素数,这不可能只是自然现象!”

——《超时空接触》

作家最大的烦恼之一是什么?据说是写不出来东西。作家最大的烦恼之二是什么?据说是书写出来了,但没人买。虽然我不是作家,但我很能理解这两个烦恼,更何况在很多时候这两个烦恼是一对矛盾:流水账般的稿子虽然如流水般写了出来,但别说没人买,恐怕都难以出版;反过来,那些市场上大卖的书,其背后无一不是无数个“熬灯油”的夜晚。

要想两个烦恼都没有,很难。

不过,有个作家,准确地说是一家出版社,却轻易地完成了一本厚达719页的书稿,而且上市 4天后这本书就脱销了。这家“没有烦恼”的出版社位于日本。2018年1月13日,这家叫作虹色社的出版社出版了一本奇特的书(图1.3.1),书中唯一的内容是当时世界上发现的最大的素数,即 277232917 -1,这个巨大的素数一共有 23249425位,在每页密密麻麻地印上了3万多个数字的情况下,这本书仍然用了 719页才把这个素数写完。

图1.3.1 《2017年最大的素数》

我不知道热捧这本书的读者是何心态,在我眼里,这本书最重要的信息其实都在封面上:2017年最大的素数,第50个梅森素数是 M77232917,即 277232917 - 1。看完这个封面,这本书就可以束之高阁了。

虽然说书稿写得轻巧,但要发现这个素数却很不容易。这个素数的发现者乔纳森•佩斯(Jonathan Pace)并不是一名数学家,他只是住在美国田纳西州的一名联邦快递公司员工,他和成千上万的志愿者一起参与了“互联网梅森素数大搜索”(Great Internet Mersenne Prime Search,GIMPS)项目,在自己的计算机上运行软件,日复一日地进行计算,直到找到了一个新的梅森素数。佩斯是一个依靠计算机找到梅森素数的普通志愿者,而在 GIMPS 项目出现之前,尤其在计算机出现之前,寻找素数是一件相当困难的事情,所以在迄今所有51个梅森素数发现者的名单上不乏鼎鼎大名的数学家和先贤,比如柯蒂斯•库珀、拉斐尔•罗宾逊、爱德华•卢卡斯和莱昂哈德•欧拉,也包括传说中发现了当p是素数时,许多素数也可以写成 2p - 1 形式的欧几里得。

欧几里得的发现无疑是令人兴奋的,比如22 - 1=3、23 - 1=7、25 - 1=31、27 - 1 = 127…… 对于前 4 个素数 p,2p - 1也是一个素数。这个规律是不是对于所有素数都成立呢,即对于任何素数 p,2p -1也一定是一个素数呢?400年前,法国数学家马兰•梅森(Marin Mersenne)带着这个疑问对257以内的所有素数 p计算了 2p - 1,并一一验证结果是否是素数,他发现并不是所有素数都符合这个规律,但这个公式不失为寻找新的素数的捷径之一,这也是今天 GIMPS 项目仍然在用它搜索新的梅森素数的原因。

在计算机出现之前,因为笔算能力的限制,要发现一个素数并不容易,要证明一个数是素数同样不容易。当年,梅森断言 M67 即 267 - 1是一个素数。1903 年,在纽约举行的美国数学年会邀请了弗兰克•纳尔逊•科尔(Frank Nelson Cole)作名为《关于大数的因子分解》的报告,这位 40 多岁的数学家被请上台后径直走到黑板前,用粉笔先计算了 267 - 1的结果,然后在另一边算出了193707721× 761838257287 的结果,当台下听众看到两个结果完全一样时,纷纷起立鼓掌[2]这个沉默的报告无声地证明了 M67 是一个合数,后来人们问他证明这个题目用了多长时间,科尔平静地回答说:“3年中的所有星期天。”

[2] 资料来源:维基百科。

比梅森早近 2000 年,欧几里得就发现了自然数的前 4 个素数符合梅森素数的规律,但他没有继续寻找新的梅森素数,而是聪明地发现了梅森素数和完全数之间的关系。

所谓完全数(perfect number),又被称为完美数,具有以下特性:完全数的所有真因子(即包括1但不包括它本身)之和正好等于它本身。比如 6 是一个完全数,因为 6 = 1 + 2 + 3 ;28 也是一个完全数,因为 28 = 1 + 2 + 4 + 7 + 14。古希腊人很崇尚完全数,认为它是如此完美,并且稀有。在小于 10000 的自然数中,只有6、28、496 和 8128 这4个完全数,甚至到今天为止,人们也才发现了51 个完全数。

虽然完全数是个合数,是个完美的合数,但它的背后却隐藏着素数的身影。欧几里得发现的是完全数和素数直接的关系,他在《几何原本》中指出,如果2p - 1 是一个素数,那么 2p-1(2p-1)一定是一个完全数。比如,22–1×(22-1)= 6 就是一个完全数,23–1×(23-1)= 28 也是一个完全数。欧几里得虽然不知道有多少个梅森素数,但他知道每一个梅森素数都对应了一个完全数,所以迄今一共发现了 51 个梅森素数,也一共发现了51 个完全数。

下面我们来证明欧几里得的结论。

q= 2p - 1 是个素数,那么 2p -1(2p-1)即 2p - 1q的质因子只有两种,即 2 和 q,所以 2p - 1q的真因子分别为 1, 2, 22 , … , 2p - 1, q , 2q, 22q, … , 2p - 2q。它们的和为

S =(1+2+22+… +2p-1)+ q (1+2+22 +…+ 2p-2) = (2p -1)+ q(2p-1-1) = 2p-1(2p - 1)

因此,2p-1(2p -1)是一个完全数。

欧几里得的完全数公式中,(2p - 1)是梅森素数,而 2p - 1 也是个神奇的数字,因为它和费马小定理有关。

费马小定理认为,如果p是一个素数,那么对于任意一个整数a,都有apa(mod p);或者,当p不能整除a时,ap-1≡1(mod p)。

费马小定理可以方便地用于同余关系的降幂。比如要计算23000 mod 17,一种做法是观察到16和17互质,将 23000变为(24)750,这样(24)750 =(16)750≡(-1)750(mod 17)≡1(mod 17);另一种做法是直接用费马小定理降幂,因为17-1= 16,所以 23000=(216)187×28≡1×28(mod 17)≡256(mod 17)≡1(mod 17)。显然,后一种做法不依赖于16和17互质的关系,更具有普适性。

我们来看一道可以利用费马小定理证明的例题。

如果有一个自然数 n,对于任一使得n | an-1成立的整数 a来说都有n2 | an- 1成立的话,我们称n为强数[3]。比如 2 是强数,因为当a 2-1是偶数时,a是奇数,使得a 2-1=(a-1)(a+1)可以被 4 整除。又比如4 不是强数,因为32-1可以被 4 整除,但不能被 16 整除。

[3] 符号“|”表示整除

试证明:

(1)所有的素数都是强数;

(2)有无限多个合数也是强数。

第1问:设 p是素数,a是整数,根据费马小定理一定有p | ap-a。根据题意 p | ap-1也成立,结合起来得到a≡1(mod p)。

a= kp + 1,k为整数,考虑ap 的二项式展开,

ap=(kp+1)p = kpp p+pkp - 1p p -1 + … +pkp+1,ap-1= p 2(kpp p-2+pkp-1p p-3+…+k)

因为p是素数,p2,所以 p-20,p 2 | ap -1,即p是强数。

第2问:考虑n = pq,其中pq是两个不同的素数。

如果有 n | an-1,即an≡1(mod n),an≡1(mod pq),则分别有 an≡1(mod p)和 an≡1(mod q),即 p | an-1和 q | an-1。

p | an-1=> p | apq-1=> p |(a q)p-1,p是素数,根据第1问的结论,可以推出p 2| (aq) p -1,即

p 2 | an-1

(1.3.1)

同理,

q | an-1=> q2 | an-1

(1.3.2)

因为pq是两个不同的素数,p 2q2互质,所以从式(1.3.1)和式(1.3.2)可以得出p 2q2 | an-1,即(pq)2 | an-1,n2 | an-1,即n是强数。

因为pq有无穷多个,n = pq是合数,所以存在无穷多个合数是强数。

欧几里得虽然没有得出梅森素数有无穷多个的结论,但他证明了素数存在无穷多个, 而且他用 的反证法非常精美、巧妙。

假设素数是有限多个的,那么一定存在着一个最大的素数,设其为p。将所有的素数相乘,并加上1,得到一个数q = 2×3×5×7×11×…×p + 1。很显然,q不可能被 2 整除,也不可能被 3 整除……也不可能被p整除,即q不能被所有的素数整除,因此q也应该是素数;同时,很显然qp,这与p是最大的素数相矛盾。因此,素数是有无穷多个的。

这个巧妙的思路也可以用来回答下面这个问题:是否存在连续2020个自然数都不是素数?

类似于欧几里得采用的方法,我们可以巧妙地构造一个数2021!,然后宣称从2021! + 2开始,直到 2021! + 2021为止,这2020个数一定是合数。其实这个数字一写出来,大家就都看明白了,因为 2021!里包含了2~2021所有2020个因子,所以2021!加上任何一个2~2021的数的和,都能被这个数整除,因此这个和一定是合数。

实际上,2020这个数字被任何一个整数 n代替的话,结论依然成立,也就是说,两个相邻素数之间的间隔 n可以非常大,甚至可以任意大。但同时我们也应该看到,这串合数的起点 n! + 2将更大。因此,虽然两个相邻素数之间的间隔可以无限大,但这个间隔不可能大于这个初始的数。

类似的结论在1850年被俄国数学家切比雪夫证明,即对于自然数n3,一定存在至少一个素数p,满足np2n-2。这就是所谓切比雪夫素数定理

虽然欧几里得证明了素数有无穷多个,但素数的分布规律至今都是个悬而未决的难题。

两个相邻素数之间的间隔可以任意大,也可以足够小。因为2是唯一的偶素数,所以2和3是唯一间隔为1的素数对。而间隔为2的素数对就很常见了,比如3和5、5和7……71和73等,我们把这种间隔为2的素数对称为孪生素数。有意思的是, 虽然对于越大的自然数,素数的分布越稀疏,但孪生素数却始终会出现。因此,数学家们猜想,孪生素数也有无穷多对,这就是著名的孪生素数猜想。到今天为止,我们已知最大的孪生素数对为2996863034895×21290000±1,它们有388342位,但孪生素数猜想还未被证明。华裔数学家张益唐证明了存在无穷多对相差小于7000万的素数,虽然2和7000万相差太大,但对于无穷大来说,间隔7000万其实已经很接近于间隔2了。

任何猜想的结局只有两种,一种是被证明,一种是被证伪。历史上有很多数学家对素数的分布做出过很多猜想,其结局也同样无外乎被证明或者被证伪。

费马曾经发现2的迭代幂22n似乎和素数有着对应关系,他把这些数叫作费马数Fn。比如,

F0 = 220 + 1 =3

F1 = 221 + 1 =5

F2 = 222 + 1 =17

费马一直验算到F4 = 65537,得到的前 5 个费马数都是素数,因此他猜想诸如22n+1形式的数都是素数。

费马死后 67年,25岁的欧拉计算出 F5 = 641×6700417 是一个合数,证伪了费马数是素数的猜想。

尽管如此,费马数还是会偶尔出现在今天的数学竞赛题中。例如:试证明方程 xy + x + y = 232 -1存在正整数解。因为 232 = 225,我们知道 F5是一个合数,所以(x +1)(y+1) = xy + x + y +1 = 232一定可以分解成两个自然数的乘积,xy一定有自然数解。具体来说,根据25岁的欧拉给出的因子分解,xy可以是(640, 6700416)或者(6700416, 640)。

证伪了费马数的欧拉也对素数的分布有着浓厚的兴趣,他发现对于小于40 的所有自然数 n,其多项式n2 + n + 41 的值都是素数。比如,当n 等于 0,1,2,3,…时,这个多项式的值分别对应于 41,43,47,53,…。欧拉公式是被证明了的,但它有个前提条件,即n40。当 n = 40 时,n2 + n + 41 = 40×41+ 41,显然能被41整除。

后来的数学家已经证明,对于非常数函数的整数系数多项式,它一定不会是素数公式。换句话说,不存在某个整数系数多项式公式,它的值都是素数。

高斯曾经说过,“数学是科学的皇后,数论是皇后的皇冠”。而人们往往把数论中的一些悬而未决的猜想称为“皇冠上的明珠”,这些目前仍未被证明或者证伪的猜想中很多都和素数分布有关,比如前面提到的孪生素数猜想,又比如著名的哥德巴赫猜想和黎曼猜想。

1900 年,希尔伯特在第二届国际数学家大会上作了题为《数学问题》的演讲,总结了23个当时最重要的数学问题,其中第 8 题就提到了孪生素数猜想、哥德巴赫猜想和黎曼猜想。

哥德巴赫猜想是精美的,因为它的表述非常简洁,哥德巴赫在和欧拉的通信中只用了一句话来说明:任何一个大于2的偶数,都可以表示成两个素数之和。虽然表述如此简单易懂,但自从1742年这个猜想被正式提出来,在之后的长达 160多年间数学家们对证明这个猜想仍然毫无头绪。进入20世纪后,虽然数学家们取得了一些进展,比如陈景润证明了一个充分大的偶数要么可以表示为两个素数之和,要么可以表示为一个素数与另两个素数之积的和,又比如在超级计算机的帮助下,数学家们证明了在小于4×1018的范围内哥德巴赫猜想没有反例,但哥德巴赫猜想在整体上仍然悬而未决。

1859 年,数学家黎曼提出的黎曼猜想和素数分布有关,黎曼猜想涉及一个超越函数——黎曼ζ函数的零点分布:对于黎曼ζ函数,其非平凡零点的实数部分都是 。黎曼同时发现素数出现的频率与黎曼ζ函数也紧密相关,现在已经验证了最小的1500000000 个素数都符合与黎曼猜想有关的强条件素数定理,但至今无人能给出黎曼猜想的完整证明,所以是否所有素数都符合这个素数分布仍然是个悬而未决的问题。

从1900年到现在,已经过去了120多年,希尔伯特的23个数学问题中的大多数已经得到了解决,但孪生素数猜想、哥德巴赫猜想和黎曼猜想仍然属于那些未被“摘取”的“明珠”,它们在皇冠顶端熠熠生辉,引得无数数学家伸出手去,似乎又是那么遥不可及。

彩蛋问题

2018 年12月,GIMPS项目发现了第51个梅森素数 M82589933,它等于282589933-1。如果虹色社采用和 M77232917相同的版式出版了有关这个新素数的新书,那么这本新书大约有多少页呢?

本节术语

梅森素数:形如 2n-1的数被称为梅森数,如果这个梅森数恰好也是一个素数,它就被称为梅森素数。

完全数:又称完美数或完备数,它所有的真因子(即除了自身以外的约数) 的和,恰好等于它本身。

费马小定理:对于任意整数 ap为素数,那么apamod p

切比雪夫素数定理:对于自然数n3,一定存在至少一个素数p,满足np2n -2。

孪生素数:如果两个素数间隔为 2 ,它们被称为孪生素数。

孪生素数猜想:存在无穷多个素数 p,使得p+2 也是素数。

哥德巴赫猜想任一大于2的偶数都可写成两个素数之和。

相关图书

深度学习的数学——使用Python语言
深度学习的数学——使用Python语言
信息学竞赛宝典 动态规划
信息学竞赛宝典 动态规划
原子核的秘密:一段前往物质核心的旅程
原子核的秘密:一段前往物质核心的旅程
线性代数与Python解法
线性代数与Python解法
信息学竞赛宝典 基础算法
信息学竞赛宝典 基础算法
数学的故事
数学的故事

相关文章

相关课程