100亿以内素数个数统计
事实上,我很怀疑这张表是后人杜撰出来的,这里最大的一个范围已经到了100亿了,在18世纪末的人类应该很难能获得100亿内的全部素数吧。不过即使这张表是后人造出来的,也不妨碍高斯的伟大成就。
N是某个具体的自然数,π(N)是实际上小于等于N的全部素数个数,右边是“相邻素数间隔的平均值”。这里,我们要注意最右边的这一列数值的意义所在,所谓相邻素数间隔的平均值,实际上也就是平均要数过多少个自然数才会遇到一个素数。换句话说,在1000以内,素数占到了1/6,在100亿内,素数大约占到1/22。这个通过统计得到的规律非常重要,高斯对于素数个数的猜测都是来自于这一列数据。
Li(x)与真实π(x)的差距
这里的N从上到下是10倍的速率增长,而相邻素数间隔的平均值却没有以指数增长,甚至还基本上稳定在某个数值附近。实际上,这个也符合我们对于素数分布的直观感受。我们早就知道素数是无限多的,随着数值的增大,素数之间的距离会越来越大,分布也就会越来越稀疏。但是我们却没有想到,其实素数占到全体自然数的概率是有一个基本稳定的值的。
分析上面的最后一列数据,相邻两行的数值上大概相差2.3。想想看,假如我们把N作为自变量,后面的那个间隔的平均值L作为未知量,组成一个函数。那么这个函数会满足一个性质,N增加10倍,L始终增加2.3,什么函数才会满足这样的要求呢?其实,这个函数就是对数函数,正是高斯那本对数书的正文部分,好好冥冥之中纳皮尔这位对数大师在引领着小高斯走向正确的轨道上来。
到这里,高斯猜测任意取一个自然数的概率应该是1/logN,这里高斯并没有指定log取的底是多少,并不一定就取10为底。高斯列出那个表里自变量N是以10倍递增,仅仅是因为这样做统计比较方便,事实上,高斯如果不嫌麻烦用7倍增速,3倍增速同样可以得出类似的结论。高斯只是猜测这两个关系之间应该是对数函数的关系。
既然猜测到了素数的概率公式,我们不妨再前进一步,任意N以内的素数的个数是多少呢?
假如高斯同志真的不嫌麻烦,甚至拥有无穷的计算力,他不再让N以10倍递增,而是让N一个一个加上去,然后再统计出对应其他两列数据。那么,假如任意N以内的素数个数都要满足上面的猜测公式的话,于是就可以得到任意N内的素数个数的一个估计公式:
高斯推测的素数个数公式
上面式子其实是一个定积分的定义展开式,为了简化表示,我们也写成一个积分:
素数个数估计函数积分形式
于是高斯最终提出的素数定理表达起来就是: