数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 2475|回复: 6

小于M^2的素数个数的无误差计算方法

[复制链接]
发表于 2019-3-29 22:53 | 显示全部楼层 |阅读模式
本帖最后由 wesmond 于 2019-4-1 23:50 编辑

公元前250年左右,古希腊人埃拉托塞尼创造了一种筛法用来寻找素数:要得到不大于某个自然数N的所有素数,只要 在2、3、4、5…N中将不大于 根号N素数的倍数划去便可得到小于N的所有素数。有没有其它的、更简洁的方法可以得到小于某个值的所有素数,并且可以计算精确的素数数量?这就是本文所讨论的,她是由 初等数论中基 本性质推导出来,过程并不复杂。可以解决 素 数分布中的“数量问题”。几年前我曾经在网上发表过的拆分合并消除法,成功的证明了从M^2- M^2+M之间最少有一个素数,她还可以推导出“小于M^2 的素数个数0误差计算方法”。虽然现在还比较复杂,并且还有很大的简化空间。有人说她是改进了的筛法!她能把素数的结构及生成规律很抽像的展现出来。

分解合并对比消除法 (是这个计算方法的理论基础)

对比两个数列 ,它们的项数是一样的

(1) 1、2、3、4、5、6、7………M

(2)M^2 +1、 M^2 +2、 M^2 +3、 M^2 +4、M^2 +5、……M^2 +M

将两数列同时进行素因子分解,然后进行比较合并消除。

数列1可以分解成数列 A

2*1、2*2、2*3、2*4………2*M/2

3*1、3*2、3*3、3*4………3*M/3

5*1、5*2、5*3、5*4………5*M/5

………

p*1、p*2、p*3、p*4………p*M/p

数列2的合数可以分解成为数列 B

2(a+1)、2(a +2)、 2(a +3)……2(a +M/2) 或2(a+M/2+1)

3(b+1) 、3(b+2) 、3(b+3) 、2(b+M/3) 或2(b+M/3+1)

5(c+1) 、5(c+2)、 5(c+3)……5(c+M/5) 或5(c+M/5+1)

………

p(n+1) 、p(n+2)、 p(n+3)……p(n+M/p) 或p(n+M/p+1)

(p为小于或等于M的素因子,M/P取整数,余数不计)

不难看出,数例A跟数例B的数量差是数例B中的加一项。根据连续自然 数的性质,如数例1和数例2 中 ,每连续的6个数,2素因子跟3素因子必合并消除一次,如此类推将数列A与B同时进行合并分别还原成数列1 、2 , 数例A中 每 消 除 一 项,数例B中必定也会跟着消除一项,当数例A消除还原到数例1时,数例B消除到最后如果将加1 项也能完全消除,由于数例B比数 例 1 少一个“1”,就能够证明“M^2到 M^2+M中至少有一个素数”。并可以推导出“还原后的数列1跟数列B之差就是M^2到 M^2+M中的所有素数”。

而且容易证明数列2的p(n+1) 、p(n+2)、 p(n+3)……p(n+M/p+1)项与其它数列的合并消除之后的项小于或者等于数列1的p*1、p*2、p*3……p(M/p)项.

证明:

因为数列2的所有含P素因子项数是M/p+1项,那么多出的这一项可表示为P(M/p+1)*C,因为P(M/p+1)是大于M的,那C必定是一个含有小于或者等于M的非P素因子项,加1项也被消除掉了。

得证:

那么M^2到 M^2+M之间至少有一个素数。杰波夫猜想得证了。合并之后数例2与数例1之差就是M^2到 M^2+M之间另外全部素数,另外可以推导出一个素数的计算公式,小于M2的素数个数是:

                     P(M^2)=(2M-1)+合并差之和 - 加一项之和

将1^2到10^2 的所有数按下图排列,并每行进行分拆对比消除,就会得到小于10^2的所有素数数量

试求小于100的素数个数。

零误差的素数计算方法

旁边的数字是加一项,红色数字是两素因子合并多的项,增加因素+1,深红色的数字是三素因子合并多的项,增加因素+2。

如在10、11、12中,比1、2、3中 2*3*2多合并了一次,所以合并之差的增加因素+1。2素因子在10和12中出现了共两次,比1、2、3中多了一个,所以减少因数加一项-1.所以素数个数是1。在37、38、39、40、41、42与1、2、3、4、5、6分拆合并消除的对比后,2*5*4的合并项是多出来的,但是因为没有减少因素,所以这里出现了两个素数37跟41.在57、58、59、60、61、 62、63、64与1、2、3、4、5、6、7、8分拆合并消除的对比后,6*5*2是增加因素+1,3*7*11增加因素+1。3素因子多了一项,加一项-1,得出两个素数59,61.如此类推,得出

小于10^2的增加项共有

2*3*2=12   2*3*3=18   2*3*4=24    2*3*5=30

2*5*4=40   2*5*5=50   2*5*6=60    2*5*7=70  2*5*8=80  2*5*9=90

2*7*4=56   2*7*5=70   2*7*6=84    2*7*7=98

3*5*2=30   3*5*3=45   3*5*5=75  

3*7*3=63                     2*3*9=72   2*3*15=90

共计20项                                                                                减少项共计有13项。

小于100的素数个数为P(10^2)=2(10-1)+20-13=25个。

按这种方法逐级上推直到无限大,得出的值与实际完全一致。

如果有不同意见,欢迎共同探讨!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2019-3-29 23:37 | 显示全部楼层
连续自然数的性质这里,并没有写得很详细,但这个确实很重要,欧几里得有两个连续自然数必互素就证明了素数无穷,如果深究还有很大作用,但很多人都忽略了这个,也许可以将这个方法完全公式化。
发表于 2019-3-30 11:41 | 显示全部楼层
这与容斥原理有什么区别
 楼主| 发表于 2019-3-30 12:19 | 显示全部楼层
本帖最后由 wesmond 于 2019-3-30 14:42 编辑

容斥原理只是一种数学工具,我也会用到。别人的理论基础是筛法,我这个理论基础是逐级对比消除,这就是区别。所以得到的结果是不一样的。
 楼主| 发表于 2019-3-30 16:55 | 显示全部楼层
本帖最后由 wesmond 于 2019-3-30 17:03 编辑
白新岭 发表于 2019-3-30 11:41
这与容斥原理有什么区别

我这个方法可以证明小于M^2 的素数个数下界是2M-1,筛法却无法做到。
 楼主| 发表于 2019-4-1 14:14 | 显示全部楼层
本帖最后由 wesmond 于 2019-4-1 23:33 编辑

这个方法得到的结果与素数分布的实际规律是一致的,但是这种规律一直无法进行量化。本人尝试了很多方法,特别是第二项合并差之和公式化结果会让计算方法变得很复杂,并会产生误差。
 楼主| 发表于 2019-4-1 23:52 | 显示全部楼层
本帖最后由 wesmond 于 2019-4-2 00:33 编辑

放在这里那么多天了,不管怎么说也是一项重要发现吧,各位大神就没人来拍砖查错的吗?好让本人改进!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2024-6-9 23:52 , Processed in 0.062500 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表