我们不但算起了黎曼猜想,还写了个程序…… | 科技袁人
今天,咱继续聊黎曼猜想。
“劝退”什么的,不存在的,只要坚持下来的同学,都能“真香”,上一集已经15万播放了,同学们学习的热情相当高,袁老师表示很欣慰。
另外这一集里,袁老师又一次发动了“无中生友”技能,不但发动了“友军”欧拉和黎曼,还请老朋友陈经老师写了代码,助阵大家理解黎曼猜想……
视频链接
腾讯视频:
https://v.qq.com/x/page/h0777bh1b5i.html
哔哩哔哩:
https://www.bilibili.com/video/av35082418
秒拍:http://gslb.miaopai.com/stream/~6GJ9jfWEkRcjdvIiAKQxpIqQVnMm-0Av~ppBA__.mp4
部分评论
i-poker:
看完以后茅塞顿开,神清气爽!
gsewood:
眼光追泪:好吧,杠精没了,告辞的人多了。。那我来杠一下吧。。。评论里那么多告辞的让我开始怀疑我国九年义务教育的普及程度。袁老师讲的数学几乎没有超过高中数学。即使是初中的水平应该也能明白大部分。点告辞的和说太难的完全是袁老师所说的跳蚤效应的反映。在说难之前有没有暂停视频去理解一下细节,有没有拿出纸笔跟着算算?如果没有,那就没有资格说难。也许这次科普确实是太硬核,不符合B站的娱乐性,但是如果像外面新闻那样泛泛地谈,就毫无意义。袁老师就是想展现出更多细节而做的节目。而且跟着欧拉和黎曼那些天才的思路,尝试,最后能理解,获得成就感,不也是另一种乐趣么?这也是数学家研究的动力来源。我认为虽然科普是深入浅出地普及科学成果,但我们听众也是需要思考的,这才达成了科普启发民智的目的,更何况是数学的逻辑推演,更需要如此。
Java写的,执行了四次
public class Main {
public static void main(String[] args) {
Main m = new Main();
new Thread(()->m.start()).start();
new Thread(()->m.start()).start();
new Thread(()->m.start()).start();
new Thread(()->m.start()).start();
}
public void start() {
int total = (int) Math.pow(10, 6);
long m = Integer.MAX_VALUE;
long n = 0;
for (int i = 0; i < total; i++) {
long a = (int) (Math.random() * m + 1);
long b = (int) (Math.random() * m + 1);
if (isRelatively_Prime(a, b) == 1)
n++;
}
System.out.println("概率为:" + n * 1.0 / total);
}
public long isRelatively_Prime(long a, long b) {
if (a < b) {
long x = a;
a = b;
b = x;
}
if (b == 0)
return a;
else
return isRelatively_Prime(b, a % b);
}
}
概率为:0.60832
概率为:0.608258
概率为:0.607674
概率为:0.608088
在上一期节目(文章见理解黎曼猜想(一)背景 | 袁岚峰,视频见https://www.bilibili.com/video/av34580488)中,我们首先介绍了黎曼猜想的背景,即质数分布问题。然后指出了研究质数分布的基本工具,即欧拉乘积公式:
这个公式左边的n指的是所有的自然数,1、2、3、4、5等等,右边的p指的是所有的质数,2、3、5、7、11等等。公式两端都出现的s是一个变量,当s > 1时欧拉乘积公式成立。
数学家经常用大写的希腊字母Σ来表示求和,用大写的希腊字母Π来表示连乘。用这种表达方式,我们可以把欧拉乘积公式简写成下面这样:
然后,我们给出了欧拉乘积公式的证明。如果把n-s记作f(n),左边就是无穷级数Σnf(n)。对这个无穷级数乘以[1 - f(2)],就会消掉所有的f(2n)项。再乘以[1 - f(3)],就会消掉剩下的项中所有的f(3n)项。再乘以[1 - f(5)],就会消掉剩下的项中所有的f(5n)项。把这样的操作重复无限多次,就会消掉所有的质数的倍数对应的项,也就是消掉所有的大于1的自然数对应的项,最后只剩下f(1)这一项,它等于1。把所有乘上去的[1 - f(2)] [1 - f(3)] [1 - f(5)]…等等移到右边去,就是欧拉乘积公式的右边Πp [1 - f(p)]-1。这样,我们就证明了欧拉乘积公式。
这其实就是当初欧拉的证明方法。它确实是一个非常巧妙的证明,堪称人类智慧的伟大结晶,令人赞叹不已。
欧拉
在上期节目的视频中,我注意到一件有趣的事。当我开始讲这个证明过程的时候,弹幕中充满了“告辞”、“劝退”、“阵亡”、“我是谁,我在哪,我在干什么”之类自暴自弃的话。但随着讲解过程的深入,越来越多的弹幕变成了“懂了”、“妙啊”、“存活”、“说得很清楚啊”。最后当证出来的时候,更是充满了一大片的“原来如此”、“太精彩了”、“恍然大悟”、“开心”等等。
真香
隔着屏幕都能感觉到同学们的“开心”,令我很欣慰。呐,做人呢,最重要就是开心!
做人最重要就是开心
理解数学有一种独特的开心,是其他任何东西都不能代替的。就像我以前讲蓝眼睛岛问题的十个层次从蓝眼睛问题,看群众理解能力的巨大差异 | 袁岚峰,完全理解了的同学就会非常高兴,因为他们从中学到的不止是这个问题本身的答案,还包括如何研究问题、如何获得深入理解的思维方法。
在上期节目的开头,我就讲了两个心理建设:一是打破跳蚤效应,勇敢地去面对数学;二是拿起纸笔,把瓜放下。任何同学如果真正按照这两点去做,我相信你就一定能领略到数学的乐趣!
回到欧拉乘积公式,左边的无穷级数Σn n-s是一个以s为自变量的函数,可以记作ζ(s)(ζ是一个希腊字母,发音zeta)。现在我们把它称为欧拉ζ函数,以后我们会看到它如何变成了黎曼ζ函数。通过研究ζ函数,我们就有可能对质数获得深刻的了解。什么样的了解呢?下面就来举一个例子。
请问:任选两个自然数,它们互质(coprime)的概率是多少?
首先来解释一下,两个自然数互质的意思,就是它们没有共同的质因数,换句话说就是,它们的最大公约数是1。例如2和3互质,2和15互质,但15和21不互质,因为15和21都以3作为质因数。很快可以看出,任意两个不同的质数是互质的,一个质数和一个不以它作为质因数的合数是互质的,1和任意自然数都是互质的。
了解了互质的定义之后,我们如何计算两个自然数互质的概率呢?
可以这样思考。首先,考虑两个自然数有公约数2的概率。这等价于它们都可以表示成2n,而所有可以表示成2n的自然数在所有的自然数当中占据的比例是1/2。因此,任选一个自然数,它可以表示成2n的概率是1/2。而任选两个自然数,它们都可以表示成2n的概率就是1/2的平方,这就是它们有公约数2的概率。那么作为跟这种情况互补的情况,两个自然数没有公约数2的概率,就是1-1/22。
然后,根据同样的推理,两个自然数没有公约数3的概率,就是1-1/32。继续下去,两个自然数没有公约数5的概率,就是1-1/52,如此等等。
最后,两个自然数互质,就等价于它们的公约数既没有2,也没有3,也没有5等等,没有任何一个质数。因此,两个自然数互质的概率等于上面各个概率乘起来,
这个表达式等于什么?仔细看一下,你就会发现,它就是s = 2的时候欧拉乘积公式右边那个连乘的倒数!因此,它等于s = 2时欧拉乘积公式左边那个连加的倒数,也就是1/ζ(2)。
真是妙啊!现在问题变成了,ζ(2)等于多少?根据定义,
也就是所有自然数的平方倒数的和。请问,它等于多少?
回答是π2/6,约等于1.6449。咦,在这里为什么会出现圆周率?这当然是有原因的啦。事实上这个等式又是欧拉证明的,这是欧拉的成名作之一。这个证明十分有趣,不过要用到微积分,许多同学们还没有学过,而且这个证明不是我们当前必需的,所以在这里我们就不讲了,有兴趣的同学请自己查阅文献。
欧拉
对于当前的目的,把ζ(2) = π2/6代进去,我们就知道了:两个自然数互质的概率等于6/π2!数值计算一下,它约等于60.79%。
这个结论对不对呢?我们还可以用计算机来验证一下。
我的朋友、风云学会会员陈经是计算机专家,他帮我写了一个程序,在1到32768(即2的15次方)之间随机取两个自然数,看它们是否互质。在测试1千万次后,发现两个自然数互质的次数总共有6080726次。因此在这个测试中,两个自然数互质的频率是60.80726%。请看,它跟理论值60.79%是多么接近!
事实上,如果你学过数值分析,你就会知道这是一个相当粗糙的数值实验。在你考虑全体自然数的性质的时候,32768这个取值上限实在是太小了,小得有点令人发笑。以后我们会讲到一个例子,算到1千亿亿都不足以保证结果成立。我们重复一下,1千亿亿!这是一个令人惊掉下巴的例子。但在这里,令人吃惊的却是,对32768这么小的样本取样,就足以得到十分接近理论值的结果。这说明,两个自然数互质的概率这个问题,随着取样范围的增大,收敛得是非常快的。
你看,我们是不是通过研究ζ函数,对质数的分布获得了惊人的结果?
根据同样的推理,我们很快会发现,任选s个自然数,它们互质的概率就是1/ζ(s)。在这里需要说明一下,三个或更多个自然数互质的意思,是所有这些数的整体的公约数只有1,而不是其中任何两个自然数的公约数也只有1。例如考虑2、3、4这三个自然数,其中的两个数2和4不互质,但这三个数的整体是互质的,这种情况我们把它算作三个数互质。
根据这个定义,你很容易看出,s越大,s个自然数互质的概率就越大。因为随着s的增大,某个质数刚好是s个自然数的共同质因子的可能性,就越来越低了。
从ζ函数的角度来考察,也确实应该如此。当s > 1的时候,n-s是一个减函数,所以ζ(s) = Σn n-s也是一个减函数。随着s的增加,ζ(s)在减小,所以ζ(s)的倒数在增大,也就是说s个自然数互质的概率在增大。
好,现在让我们把视线投向任意正整数s对应的ζ(s)。
在这里可以告诉大家,对于正的偶数s,ζ(s)是可以快速求出的,而且其中总是包含圆周率π的s次方。例如ζ(4),也就是所有自然数的四次方的倒数之和,它等于π4/90,约等于1.0823。由此可以算出,四个自然数互质的概率等于90/π4,约等于92.39%。
然而对于正的奇数s,ζ(s)的计算就会变得非常麻烦,很难有个简单的表达式。例如对于ζ(3),也就是所有自然数的三次方的倒数之和,我们就只能说它约等于1.2021。你要是想把它精确地表示出来,就只有一些比较复杂的积分或者无穷级数或者连分数的表达形式。
无论如何,根据ζ(3) ≈ 1.2021,我们可以算出三个自然数互质的概率约等于83.19%。从两个自然数互质的概率60.79%,到三个自然数互质的概率83.19%,到四个自然数互质的概率92.39%,我们看到它们确实是在上升的,符合预期。
随着s趋于无穷大,ζ(s) = Σn n-s当中只有第一项1不受影响,后面的项都迅速地趋近于0,所以ζ(s)会趋近于1。相应的,s个自然数互质的概率也确实会趋近于100%,这都是很容易理解的。
你也许会问:s只能取整数值吗?当然不是,它完全可以取3/2(也就是1.5)或者1.6或者π等非整数的值。对于非整数的s,ζ(s)仍然是有明确定义的,只不过这时不能跟所谓“s个自然数互质的概率”联系起来了。你可以计算ζ(3/2),它约等于2.6124,但你无法谈论所谓“1.5个自然数”。
如果你对分数指数感到迷惑,请翻一下高中数学课本就知道了。这里可以提示一下,一个数的3/2次方,等于它的三次方的平方根。而一个数的π次方,就等于它的3次方、3.1次方、3.14次方、3.141次方、3.1415次方、3.14159次方等等这个数列的极限。
现在,我们对ζ函数增加了许多了解,明白了它跟质数有深刻的联系,并且知道了它在若干个点上的取值。现在,你是不是对这个函数感到很亲切,而不会感到恐惧了?
不过我们必须强调一下,到目前为止,所有的s都是大于1的。你也许会问,ζ(1)等于多少?也就是说,所有自然数的倒数和等于多少?在数学上,我们又把它称为调和级数(harmonic series)。
现在,一个关键点来了:ζ(1)等于无穷大!也就是说,调和级数是发散的!
为什么会这样?让我们把ζ(1)的表达式写出来,就能够做下面的推理:
最后那个式子中,随着项数的增加,会出现无穷多个1/2。无穷多个1/2加起来当然会大于任意的有限值,因此最后的式子是发散的。而ζ(1)比它还要大,所以当然也是发散的。
如果你觉得上面的表达方式不太严格,那么我们真正想表达的意思是:对于任意大的自然数k,都有下面的不等式。
实际上,调和级数虽然是发散的,但它发散得非常慢。把前面的10的43次方项加起来,都没有超过100。10的43次方是多少?一亿是10的8次方,所以10的43次方就是1千亿亿亿亿亿。用物理世界举个例子,整个宇宙的半径大约是137亿光年,量级是10的26次方米,一个原子核的半径是10的-15次方米的量级,宇宙半径除以原子核半径也不过是10的41次方而已,还要再乘以100才能达到10的43次方。想想看,1千亿亿亿亿亿个数加起来,都没超过100!这是怎样的一种增长速度啊!
为什么会这样呢?原因又是欧拉告诉我们的。欧拉证明了,调和级数的增长速度,大致就是自然对数的增长速度。如果你没学过自然对数,那么可以简单解释一下:常用对数(经常写成lg)是以10为底的对数,而自然对数(经常写成ln)是以e为底的对数,这里的e是一个常数,约等于2.71828。为什么要以这样一个数为底?因为在数学上,lnx具有许多很好的性质,处理起来比lgx方便得多。其实在数学中,自然对数才是“常用”的,比所谓“常用对数”常用得多。
欧拉
更具体地说,欧拉证明了,调和级数的前n项之和约等于lnn,而随着n的增大,它们的差值会趋近于一个常数γ:
这个常数叫什么名字呢?当然,又叫做欧拉常数(Euler’s constant)……咦,我为什么要说“又”呢?
欧拉
我们可以用两个面积的差来形象地表现欧拉常数。一个面积是一系列的矩形之和,它们的宽度都是1,而高度从1到1/2,到1/3,到1/4,如此等等,一路下降。另一个面积是y = 1/x即倒数函数曲线下面的面积,即图中的深红色部分,数学家会告诉你,它就等于lnx。这两个面积的差,就是图中的蓝色部分。
用面积表示欧拉常数
你会看到,在每一个矩形中,矩形的面积都大于倒数函数曲线下方的面积,但相差得越来越小。当x趋于无穷的时候,蓝色部分的面积就趋于一个有限值,它等于欧拉常数。
了解了调和级数即ζ(1)的发散性质以后,让我们回到欧拉乘积公式。在上一期中我们说过,欧拉乘积公式只在s > 1的时候成立。有同学问我,欧拉乘积公式的推导过程好像跟s完全没有关系,那么它是不是对于任意的s都成立呢?回答是:不行,只有对大于1的s才成立。
这是因为我们的推导过程有一个前提,就是ζ(s)是一个有限值,或者说ζ(s)是收敛的。只有在这个前提下,才能把它当成一个正常的数进行种种操作,例如乘以1 - f(2),消去所有包含2n的项。但假如ζ(s)是发散的,那么这样的操作就毫无意义,有可能导致各种各样的错误。例如你经常听说的所谓“全体自然数的和等于-1/12”,就是这样的一个错误!
在欧拉那个时代,许多数学知识的基础定义还不够严格,数学家还经常搞一些有越界之嫌的操作,欧拉就搞了不少。而现代的数学家是非常注重严格性的,他们给你看的证明,一定都是保证了可靠性,每一步都有精确定义的。我虽然不是数学家,但我给你看的证明,也一定是保证了可靠性的。
既然ζ(1)是发散的,那么你很容易发现,当s < 1的时候,ζ(s)会变得更大,当然就更是发散的了。因此,对欧拉ζ函数的研究,只能在s > 1的范围内进行。从中我们确实能得到一些有趣的结论,例如s个自然数互质的概率等于1/ζ(s),但这些毕竟还是对质数分布的间接了解,直接的了解还很欠缺。
如何才能对质数的分布获得更加深入的了解呢?
我们的大事件来了:你的好友黎曼已上线!欧拉ζ函数升级为黎曼ζ函数!
黎曼
科技袁人系列
科技袁人第二弹:有人觉得中国科技太弱,因为全世界除了中国只有一个国家:“外国” | 风云之声
科技袁人第三弹:量子通信、液态金属、可燃冰……中国领先世界的黑科技,你知道几个? | 风云之声
去美国NASA访问,才听说中国人2020年都要登上火星了 | 科技袁人
搞科研中文有时不如英文,有些人就想出来要废除汉字?| 科技袁人
理解引力波很简单,只需要你先搞明白爱因斯坦的相对论…… | 科技袁人
中国的量子卫星究竟什么水平?也就比日本少用了99999999个光子 | 科技袁人
为什么不该拿科学家去和明星比收入?听听这三位诺奖得主的故事 | 科技袁人
喵星人可能早就发展出了引力波探测技术,否则为什么每次我刚想倒猫粮…… | 科技袁人
中国有些教授竟然觉得造银河计算机没用,我都惊呆了 | 科技袁人
被有些人吹上天的日本人“工匠精神”,到底是个什么东西? | 科技袁人
相信那些治绝症的微信神文,这本身是一种“反智”病! | 科技袁人
真有人认为中国没有哲学家?我一个化学博士都坐不住了 | 科技袁人
霍金离开了,比起去争论他有多伟大,更该了解他为我们做了什么 | 科技袁人
我们都知道钱学森的伟大精神,那么他的贡献有多强?| 科技袁人
今天,让我们纪念,一位为中国保留未来种子的师长 | 科技袁人
在魔法角度下石墨烯超晶格中的半充满关联绝缘体行为了解一下 | 科技袁人
中兴、芯片和技术战争 | 科技袁人
屠呦呦伟大之处,是为全人类抗疟疾事业从0突破到1 | 科技袁人
屠呦呦获诺贝尔奖的功劳有中医的,但更有新中国的 | 科技袁人
科普讲座身经百战的袁老师,这次却迎来大危机…… | 科技袁人
不是无脑吹就是低端黑,还能不能好好聊中国科技了? | 科技袁人
都在直播22个男人玩皮球,我们直播3个男人玩思想! | 科技袁人
知乎专栏:
http://zhuanlan.zhihu.com/fengyun
一点资讯:
http://www.yidianzixun.com/home?page=channel&id=m107089
今日头条:
http://toutiao.com/m6256575842