龙空技术网

这真的是素数的公式!但没有什么卵用!

哆嗒数学网 3294

前言:

现时各位老铁们对“判断素数函数实现”大致比较重视,朋友们都需要了解一些“判断素数函数实现”的相关文章。那么小编在网络上网罗了一些对于“判断素数函数实现””的相关资讯,希望兄弟们能喜欢,朋友们快快来了解一下吧!

愚人节期间,我们哆嗒和往年一样,发了一篇愚人节的整蛊文章《素数公式发现,所有数学之谜即将揭开》,没想到大家和我们一起玩的很嗨,真是一个欢乐的愚人节。

文章中我们写出了下面这样一个公式,并说它是第n个素数p(n)的表达式:

文章还专门解释了方括号[x]是取整函数,p!表示阶乘,并规定0! = 1。

欢乐归欢乐,因为愚人节的关系很少有人注意到我们贴出的公式本身是不是对的。

在这里,我们哆嗒数学网的小编负责人的说,如果只从等式两端是否相等的角度来说,这绝对是如假包换、童叟无欺、“珍珠”都没这么真的素数公式。整篇文章,也许就这个公式是靠谱的。

这个公式其实写进了不少数学科普书,要解释它也很容易。

说来奇怪,按照一般人的标准课程,我们大多数人对数学中数论知识的学习都集中在小学。到了初中、高中除了一些竞赛需求,几乎不怎么学习数论了。到了大学,也只有部分专业的同学才学习初等数论。

初等数论中,有很多有趣的知识,和数数差不多,也就是我们解释这个公式的重点。

公式有两个“连加号”Σ,也就是我们要解释的重点。

数素数的π(x)函数

给定一个整数x,我们把不超过x的素数的个数表示为π(x)这个函数。比如不超过6的素数有2、3、5三个,那么π(6) = 3 。 不超过11的素数有2、3、5、7、11这5个素数,于是π(11) = 5。

这样,很容易看出,如果是第n个素数p(n),π(p(n)) = n, 而且x < p(n) 时候π(x) < n(即π(x) ≤ n-1), x ≥ p(n)的时候π(x) ≥ n 。

这个时候π(x) 还只是数数游戏的,我们需要表示成一种只有加减乘除的东西。

利用威尔逊定理把π(x)函数表示出来

学过初等数论的同学们都知道一个叫做威尔逊定理的命题:

p是素数或1,当且仅当 (p-1)!+1是p的倍数。不止如此,当p是大于4合数的时候(p-1)!还是p的倍数。

有了这个,我们可以分析分母了那个连加号了。

我们先看分母上连加号的内部:

这里,k=1的时候,上面的式子值是1。

根据威尔逊定理,当k是合数的时候,[(k-1)!/k]是整数,所以方括号可以去掉。上面式子的值其实是[1/k]。对于正整数,值是0。

当k是素数的时候,(k-1)!/k = ((k-1)!+1)/k - 1/k,所以对右边的方括号做一些简单变换,可以得到整个式子是值是1。

所以当连加号的k从1跑遍j的时候,实际上是一堆1和一堆0的加总。k是素数或1的时候是1,合数的时候是0。这些1加起来正好是不超过j的素数的个数加上1,即1+π(j) 。

伯特兰-切比雪夫定理、π(x)和素数公式

我们已经把开头的式子改写了成下面的样子了:

看看连加号内部根号下的部分,

这是一个关于j的递减的式子,关键点在j = p(n) 这一处。当j ≥ p(n)的时候π(j) ≥ n,分子小于了分母,取整后就是零了。

相反,当j < p(n) 的时候π(j) < n就是说π(j) ≤ n-1,这样分母不会比n大,取整后是一个不小于1但不超过n的整数。

好了,我们都知道n的开n次根号是不小于1且严格小于2的。利用这个我们能得到下面的结论:

当j < p(n)的时候整个连加号内部的式子(下图式子)的值都是1,j ≥ p(n)的时候都是0。

所以当连加号的j从1开始一直的时候,实际上是连续的几个1相加,然后到p(n)开始都是0相加。正好跑了p(n) - 1个1。

至于为什么跑到的终点是2的n次方,这是因为

伯特兰-切比雪夫定理:对所有正整数n,n和2n之间必有素数。

利用这个定理,你能归纳出,第n个素数p(n)不会超过2的n次方。

于是素数公式出炉。

愚人节的文章还给出另外一个公式,其实是换汤不换药啦。

一点心得

好了,对于这个公式你们想说什么呢?复杂度太高?因为它里面有阶乘!矫揉造作?这个和一个一个数有什么区别?

理由也许都对!这些理由或许就是即便看上去把素数写成了一个“简单公式”,也对和素数有关问题的解决没有任何帮助的原因。

但它的确是一个正确的公式,也许可以看成“正确的废话”素数公式版吧。

不过,读者中有第一次见这个公式的小伙伴,是不是也感到一些有趣呢——你们可以拿去继续骗人呐!

关注 哆嗒数学网 每天获得更多数学趣文

标签: #判断素数函数实现 #判断素数为什么要开根号