验证哥德巴赫猜想

合集下载

哥德巴赫猜想验证方法

哥德巴赫猜想验证方法

哥德巴赫猜想验证方法山穷水尽疑无路柳岸花明又一村。

到底山前有没有路,不能光是怀疑,应该到山前看一下才知道噻!不是大偶数没有素数对?而是,你能指出哪一个逐渐增大的偶数的素数对个数,不是按下面列表的增长规律而相应增加的呢?请你来制作不断增加的偶数的素数对下限表,也请你来检验有没有偶数的实际素数对低于下限表中的素数对个数。

哥德巴赫猜想,指大于4的偶数可以表示为两个奇素数之和。

如偶数14=3+11=7+7,我们把3+11和7+7都叫做偶数14的素数对,即该偶数有两个素数对。

令大于4的任意偶数为M,√M≈N,N为小于√M的最大素数,那么,M的素因子为2,3,5,7,11,13,17,…,N;奇合数因子为9,15,21,25,27,…,H,(H<N)。

根据推论,偶数的实际素数对个数≥(1/4)E*N*K,偶数的实际素数对个数≈( E KN/4)*(1+R/N)。

式中的E为递增函数,N为偶数的最大素因子,K为假定奇合数删除的剩余率倒数乘积(奇合数是不直接参与删除的,它的删除是由组成奇合数的素因子所代替了的),R为奇素数因子个数。

因(1/4)E*N*K中的E≥1,N≈√M,M为>4的偶数,即N>2。

从该式子看:当偶数>13225时,K>4,表明偶数的素数对个数,大于偶数的平方根;当偶数>8958049时,K>40,表明偶数的素数对个数大于偶数平方根的10倍;…。

我们从(1/4)E*N*K,按N≈√M,提出(1/4)*(1/3)*(3/5)*(5/7)*(9/11)*(11/13)*…*(N-2)/N=(1/4)*(1/N)*(9/7)*(15/13)*(21/19)*…*H/(H-2),制作偶数的素数对下限函数表,人们验证时只需要用函数值*偶数*E即可,如果,人们在检验中发现有偶数的实际素数对个数<这种计算方法的计算个数时,证明该推理是错误的。

否则,哥德巴赫猜想是成立的。

同理,在( E KN/4)*(1+R/N)中提出近似函数值,制作偶数的近似素数函数表,人们验证时只需要用函数值*偶数*E即可,看偶数的实际素数对个数是否接近这个数。

哥德巴赫猜想成立的证明

哥德巴赫猜想成立的证明

哥德巴赫猜想成立的证明因为,科学是如实反映客观事物固有规律的系统知识,所以,本文只谈客观事物的固有规律,不谈任何人的断言;只欢迎大家用具体事例进行反驳,拒绝任何人以任何高腔压人.一,题意分析哥德巴赫猜想分为:猜想1,不小于6的偶数,可以表示为两个奇素数之和;猜想2,不小于9的奇数,可以表示为三个奇素数之和.只要猜想1成立,猜想2自然就成立.如果猜想1成立,大于9的任意奇数W,W-6之内的素数,都能够与所对应的偶数的素数对组成该奇数的素数组.如,奇数19,19-6=13,13之内有奇素数3,5,7,11,13.这些奇素数有:3+16=3+(3+13)=3+(5+11);5+14=5+(3+11)=5+(7+7);7+12=7+(5+7);11+8=11+(3+5);13+6=13+(3+3).所以,本文只谈猜想1.猜想1,涉及两个术语:偶数,素数.偶数,指能被2整除的数,叫偶数.素数,只能被1和自身数整除的数,叫素数.从定义看,这两个定义,没有丝毫的联系,无法直接进行证明.那么,要证明该论题,必须创造条件,在相互联系的基础上,才能进行:为了达到统一,我们还要看偶数除以小于它根号以下所有素数的余数组合,我们把小于偶数根号以下的所有素数,简称为小素数.如令偶数为M,M/2余0,M/3余2,M/5余1,M/7余2,由这4个小素数有余数组合,固定了偶数为86,或86+210N的这一类偶数.素数,只能被1和自身数整除的数,叫素数.与素数相对应的数为合数,合数是除了能被1和自身数整除外,还能被其它数整除的数.令任意合数为B,B能被1和自身数以外的其它数整除时,必然其中一个约数为B平方根以下的数D,D或者为素数,或者为合数,当D为合数时,B必然能被组成D的素因子整除,也就是说:当B能被B平方根以下的任意素数整除时,B为合数;当A不能被A平方根以下的所有素数整除时,A为素数,(这里的A>3).哥德巴赫猜想,是数学证明题,但又不同于其它的所有数学证明题:其它数学证明题是直观的,实在的.该题是抽象的,活动的.所谓抽象,是指不小于6的偶数,指大于4的所有偶数,具有无穷性,不固定性.该题的偶数的特性是不一样的,这里所说的特性,是指偶数除以它根号以下的所有素数的余数,是活动的,变化多端的.居于这两个方面,我们说偶数具有抽象性.在其它任何地方,提起偶数,只须要有一个定义”能被2整除的数,叫偶数”,就足够了.而这个题的偶数,涉及它能否表示为两个奇素数之和,素数是只能被1和自身数整除的数,或者说它是不能被自身数以外的其它素数整除的数,也可以说它是不能被它根号以下的素数整除的数,还可以说它是不能被小于它的素数整除的数.即,在该题谈论偶数,必须考虑它除以它根号以下所有素数的余数,我们把这种考虑叫做偶数的综合特性.所谓活动的,是指素数是活动的,它不同于整数,整数是除以1余0的数,可以用公差为1的等差数列表示,每一个项都是实实在在存在的,素数是不能用任何等差数列来表示,也就是说不能说任意一个等差数列的数都是素数;或者说,偶数内的大部份数不是素数,而大部份素数相对于具体偶数的对称数也不是素数,即,本身数是否是素数,因不固定而活动;对称数是否是素数,也因固不定而活动.或者说,素数的检验标准不同于整除,不同于偶数,决定了素数在偶数之内是活动的.衡量尺度,素数的最低(衡量尺度)是不能被它根号以下的所有小素数整除,素数相对于偶数来说,我们用不能被小于它的素数整除,统一到不能被偶数(衡量尺度)根号以下的素数整除.因为,抽象与活动,所以,我们不能象其它算术一样,出现一个具体的计算公式,计算出某一个具体的偶数必然有几个素数对.只能说明不小于6的偶数,必然存在素数对,或者说近似素数对个数.二,偶数的素数对定理我们把两个素数之和等于偶数的这两个素数,称为素数对.如,3+5=8,把3+5称为8的素数对.令不小于6的任意偶数为M,小于√M的素数为小素数。

哥德巴赫猜想论证

哥德巴赫猜想论证

哥德巴赫猜想论证哥德巴赫猜想是数学史上最著名的猜想之一,它是17世纪德国数学家克劳德波拉兹哥德巴赫提出的一个关于整数的猜想,它声称每个大于2的偶数都可以表示成两个质数之和。

哥德巴赫猜想也被称为“哥德巴赫成对猜想”,是一个世界著名的无穷猜想。

自1742年以来,哥德巴赫猜想一直未能完全证明,许多世界著名的数学家研究它,但是到目前为止,它尚未得到完全的证明。

哥德巴赫猜想的研究历经数百年而未能得到解决,一直都是世界数学界的难题,其研究具有重要的历史意义。

20世纪有大量的研究成果,但是它还未被完全证明。

从哥德巴赫猜想被提出到现在,数学家们一直在尝试着论证这个猜想,以征服这一难题。

十九世纪,拉普拉斯展开了经典论证,从另一个猜想因数唯一性论点出发,他证明了哥德巴赫猜想中的一些特殊情况。

1905年,希尔伯特提出了分析思想,认为可以通过分析来解决这个问题。

随后,他更深入地运用了分析思想,证明了某些特定的整数,如23以及291,可以表示为两个质数之和。

1909年,他又推进了自己的论证,证明了更多的整数可以表示成两个质数之和。

1931年,莱布尼茨将希尔伯特的论证推广到更多的偶数,改善了希尔伯特的论证。

1937年,德国数学家贝克曼将费马小定理推广到素数,从而改善了莱布尼茨的结果。

1947年,提出了阿廷费马定理,它声称,任何一个满足一定条件的质数都可以表示为两个不同的素数之和。

费马定理为解决哥德巴赫猜想提供了很大的帮助,但仍然无法将费马定理证明成为哥德巴赫猜想的充分条件,只能认为它是一个有利的条件。

尽管如此,20世纪以来,哥德巴赫猜想仍然是未解决的难题。

克拉克等数学家尝试了许多方法,但所有方法都未能解出哥德巴赫猜想。

有学者认为哥德巴赫猜想不能被论证,而是要被反论证。

另一方面,也有学者持续不懈地追求哥德巴赫猜想的解决。

近年来,随着数学技术的发展,计算机技术的兴起,以及人工智能技术的进步,有越来越多的学者使用计算机和人工智能来解决哥德巴赫猜想,但至今仍未取得重大突破。

证明哥德巴赫猜想

证明哥德巴赫猜想

证明哥德巴赫猜想杨哲为了证明哥德巴赫猜想,采用了偶数裂项分析法,把一个偶数分裂为两个部分,再把这两个部分逐步变换成为两个素数,而且这个偶数的大小恰好与这两个素数的和相等。

在偶数裂项分析过程中有两种情况,一种是盈亏平衡,偶数恰好与这两个素数的和相等;另一种是盈亏不平衡,使偶数与两个素数的和不相等。

依据两个素数之间的大小关系,建立兄弟素数定理,用来平衡在偶数裂项分析中出现的盈亏不平衡,解决了盈亏不平衡问题。

得到的结论是,哥德巴赫猜想命题成立,即任意一个大于2的偶数都可以表示成两个素数之和。

1 证明方法简介1.1 偶数裂项分析法:把偶数2n分裂为n+n=(p1+t)+(p2-t)=p1+p2的分析方法,定义为偶数裂项分析法。

其中n为任意自然数,p1,p2(p1≤p2)为任意二素数,t为满足以上关系式的自然数。

偶数裂项分析法的关键是要找到合适的p1,p2,t使得以上的等式成立,用以下两种方法寻找p1,p2,t比较简便,其中求素数值要用筛法。

最小t值法:当p1,p2二素数的大小相近时t取得最小值,比喻:100=50+50=(47+3)+(53-3)=47+53(t=3,p1=47,p2=53此时两素数大小相近)最大t值法:当p1,p2二素数的大小相远时t取得最大值,比喻:100=50+50=(3+47)+(97-47)=3+97(t=47,p1=3,p2=97此时两素数大小相远)1.2 兄弟素数定理(简称BP定理):1.2.1 例表分析:p1=p1´+k1=11=11+0=7+4=5+6=3+8,p2=p2´+k2=13=13+0=11+2=7+6=5+8=3+10从例表分析可以看出,对于任意一个素数p至少存在一个比p小的素数p´与一个自然数k使得k,p´的和与这个素数p相等,所以有如下的BP定理。

1.2.2 BP定理:定义满足以上条件的素数p为兄素数,素数p´为弟素数,定义自然数k为差量数,所以兄弟素数定理表述如下: 任意一个兄素数p,总是可以表达为一个弟素数p´与一个差量数k之和。

哥德巴赫猜想最简洁的证明

哥德巴赫猜想最简洁的证明

哥德巴赫猜想最简洁的证明
哥德巴赫猜想猜想的命题是:大于或者等于4的偶数都可以表示两个素数之和。

对于一个偶数K , 我们把所有大于2 小于K的素数和K相减,所得的结果有N个,这其中的结果有的可能是素数。

实验发现在K不是很大的情况下,这些素数可以组成n个素数对。

这样,不同的K就有不同的n,我们认识到随着K值的增大,n 也随着增大。

K值取10,可以表示成3+7, 5+5,有2个素数对,也就是n的值为2。

K值取30,可以表示成7+23, 11+19, 13+17, 有3个,也就是n 为3。

K取100,n为6。

可以看出,在K值不是很大的时候,n随着K值的增加而增加,没有减少的情况出现。

但是,增加的速度没有K增加的速度快。

下面,我们借助几何图形来分析n和K的值在越来越大的时候的变化趋势。

在下图中,
n(K)那条线,n随着K的增大而增大,但没有K增大的速度快,不过,始终是在增大着,随着K值的增大,离n =1那一条线是越来越远,永远也不会靠近n=1这条线。

这个就意味着K值比较大的时候,n永远也不会小于1的,K至少有一对素数和,这个就证明了哥德巴赫猜想是正确的。

K 和n关系类似与一条抛物线,有可能当K趋向于无穷大的时候K = n²,但是,如果这个是正确的,其证明难度可能比哥德巴赫猜想更大。

探索证明哥德巴赫猜想思路

探索证明哥德巴赫猜想思路

探索科学归纳法证明哥德巴赫猜想偶数的通式是:2n=(n+n)=(n+a)+(n-a)……①,其中n自然数。

哥德巴赫猜想中n是大于1的整数,a小于n。

偶数的通式是:2n=(n+n)=(n+a)+(n-a)……①,其中n自然数。

哥德巴赫猜想中n是大于1的整数,a小于n。

1.因为大于2的偶数一定可以分解质因数,当偶数只能分解为两个相同的质数时,即①中n是质数时,是a=0的情况,2n这个偶数已经表达成哥德巴赫猜想。

特例:当n=2并且a=0时,2n=(2+2)命题得以证明。

2.当n大于1的整数时,分析①我们容易知道,偶数一定由相同的两个奇数组成或两个相同的偶数组成,二者必居其一。

不论当n为偶数时a为奇数,还是当n为奇数时a为偶数,n+a、n-a同时为奇数,大于2质数一定存在于奇数之中。

下面我们用科学归纳法讨论:当n足够大时(n大于1),调节a能使n+a和n-a同时为偶数、奇数、小数、分数、无理数等等。

根据科学归纳法,我们也一定能得出:当n足够大时,a一定能使n+a和n-a同时为质数——哥德巴赫猜想得以证明3.下面我再从理论论证哥德巴赫猜想的正确性。

2n=(n+n)=(n+a)+(n-a)。

n等于2、3时,2、3是质数,命题得以证明。

n=4时,a 的值可以是4个(因为a可以等于零,可取0、1、2、3,以下类推),n=5时,n的值可以是5个……,即n大的小等于a的取值个数。

n 趋于无穷时,a的取值范围也趋于无穷。

在无穷a之中寻找,合乎n+a、n-a同时是质数的情况,a个数一定会更多。

也就是说,偶数2n趋于无穷时,是在无穷之中寻找:n足够大的时存在的质数对——n+a、n-a,很显然,偶数2n趋于无穷时,一定存在质数对——n+a、n-a。

事实上,当n是合数,n大于9时,合乎n+a、n-a同时是质数的情况,a的取值个数不小于1。

这就说明n足够大时,2n也足够大时,大于2的偶数一定能写成两个质数(素数)之和,即偶数趋于无穷时,哥德巴赫猜想也成立。

我对哥德巴赫猜想的证明

我对哥德巴赫猜想的证明

我对哥德巴赫猜想的证明
哥德巴赫猜想:每个大于等于6的偶数,都可表示为两个奇素数之和。

证明:构造集合 V = {X | X 为素数 } ,即对于任意素数 X ∈ V 现构造大数 K 为集合 V 所有元素的乘积,
K=∏X ( X ∈ V) = 2*3*5*7*11*13......*m*......*n 即K为所有素数的乘积,由上式明显可知,K为大于6的偶数。

按照哥德巴赫猜想,可表示为 K = L + G
现假定 L 是素数,可得
G = K - L = L * (K/L -1)
然对于任何一个素数 L 均为 K 的一个因子,∴其中 K/L 为正整数,且有K 的构造明显可知 K/L大于2 ,
∴(K/L -1)为大于等于 2的正整数,又∵ L 为一个素数,∴ G 不等于 K/L -1。

∵ G 除了1 和自身外至少还有 L 和 K/L -1 两个因子,
∴ G 不是素数。

∵对于任何奇素数 L ,G = K - L 都不是素数
∴ K 不能被表示为两个奇素数之和的形式
∴可知哥德巴赫猜想不成立。

证明完毕。

哥德巴赫猜想的最终证明

哥德巴赫猜想的最终证明

哥德巴赫猜想的最终证明1742年6月7日,当时还是中学教师的哥德巴赫,写信给当时乔居俄国彼得堡的数学家欧拉一封信,问道:“是否任何不小于6的偶数,均可表示为两个奇素之和?”.20天后,欧拉复信写到:“任何不小于6的偶数,都是两个奇素数之和.这一猜想,虽然我还不能证明它,但是我确信无疑地认为这是完全正确的定理.”这就是一直未被世人彻底解决的著名的哥德巴赫猜想,也称为哥德巴赫----欧拉猜想.命题简述为:(1)每个≥6的偶数都可表示为两个奇素数之和;(2)每个≥9的奇数都可表示为三个奇素数之和.在260多年的漫长岁月里,各国数学都为证明这个猜想绞尽脑汁,但最终未能彻底证明.只是对第一部分进行了大量验证,对第二部分间接地进行了证明.现在让我们采用一种全新的方法揭示出这个猜想的规律性,使这个定理得到最终证明.要证明这个定理实质是解决下列问题:(1)奇素数如何表示?(2)猜想的第一部分能否由奇素数的表示法得到证明?(3)第二部分是否是第一部分的推论?首先,让我们解决问题(1):奇素数定理:p是一个奇素数,当且仅当,<1>p=3;<2>p=6k-1,且k≠6mn±(m-n),m,n为任意正整数;<3>p=6k+1,且k≠6mn±(m+n),m,n为任意正整数.证明:=>若p是奇素数,则p≥3,若p=3,必要性显然;p>3时,p是素数则p/3余1或余2,即余1或-1,所以p=3p1±1,又p为奇数,从而p1 =2k,k为正整数,否则p为偶数.因而p=6k±1当p=6k+1时,若存在正整数m,n使得k=6mn±(m+n)则p=6[6mn±(m+n)]+1=6m×6n±6(m+n)+1=(6m±1)(6n±1)从而p为合数,矛盾.即不存在正整数m,n使得k=6mn±(m+n)当p=6k-1时,若存在正整数m,n使得k=6mn±(m-n)则p=6[6mn±(m-n)]-1=6m×6n±6(m-n)-1=(6m±1)(6n±1)从而p为合数,矛盾.即任意m,n使得k≠6mn±(m-n)综合以上三方面可知必要性成立.<=充分性.若p=3,充分性显然;若p=6k+1时,p=3×2k+1,则3ˉ︳p;又p=2k×3+1,则任意偶数2kˉ︳p;任一组正整数m,n,使得k=6mn±(m +n)不成立,即p=(6m±1)(6n±1)不成立,即(6m±1)ˉ︳p, (6n±1)ˉ︳p﹐但1︱p,p︱p,由奇﹑素数定义可知充分性成立;同理可证若p=6k-1时充分性成立.综上充分性得证.由此定理可知:除3以外的奇素数都满足p=6k+1(k≠6mn±(m+n))或p=6k-1(k≠6mn±(m-n))的形式.其次,解决问题(2).任一偶数N≥6,则有且只有下列一种情况成立:N=6k-2,N=6k,或N =6k+2.只要这三种情况下N都能表示为两个奇素数之和,则猜想成立.证法1:同余统计法当N=6k-2时,对N可进行[k/2]个如下连续分解: N=(6×1-1)+〔6×(k-1)-1〕=(6×2-1)+〔6×(k-2)-1〕=(6×3-1)+〔6×(k-3)-1〕=(6×4-1)+〔6×(k-4)-1〕=(6×5-1)+〔6×(k-5)-1〕=(6×6-1)+〔6×(k-6)-1〕=(6×7-1)+〔6×(k-7)-1〕=(6×8-1)+〔6×(k-8)-1〕=(6×9-1)+〔6×(k-9)-1〕=(6×10-1)+〔6×(k-10)-1〕. . . . . .=〔6×(k/2)-1〕+〔6×(k/2)-1〕 (k为偶数) =〔6×[k/2]-1〕+〔6×([k/2]+1)-1〕(k为奇数)这种形式的分解中有四种情况:<1>素+合,<2>合+素,<3>合+合,< 4>素+素.其中合数项6k-1=(6m-1)(6n+1)成对出现6m-1与6n+1,因而只考虑6m-1与i(<k)的关系就够了.p|(i)表示素数p=6m-1整除(6i-1),因为6m-1+m=i≤k必使6i-1为合数,则m≤[(k+1)/7],即这k个分解中的合数项全部是由1~[(k+1)/7]项中的素数衍生的.则:5|<1><6><11><16>..... <1(mod5)>11|<2><13><24><35>.. ....<2(mod11)>17|<3><20><37><54>.. ....<3(mod17)>23|<4><27><50><73>.. ....<4(mod23)>...........(6[(k+1)/7]-1)|<[(k+1)/7]><7[(k+1)/7]-1> ....<[(k+1)/7](mod(7[(k+1)/7]-1))>因而在前10个分解中,10个前项有9个素数项,而10个后项至少有3个素数项,因此素+素的分解至少有2个,即这种情况下猜想得证.当N=6k时,有如下k种分解:N=(6×1+1)+〔6×(k-1)-1〕=(6×2+1)+〔6×(k-2)-1〕...... .......=(6×[k/2]+1)+〔6×[k/2]-1〕(k为偶数)=(6×[k/2]+1)+〔6×([k/2]+1 )-1〕(k为奇数) 若将前后项中的+1与-1颠倒顺序又会得到[k/2]个分解.在前-后+的前10个分解中前项有1个合数,有9个素数,而后项最多有8个合数,因此前10个分解中至少有一个素+素分解.即此情况下猜想成立.当N=6k+2时,有如下[k/2]种分解:N=(6×1+1)+〔6×(k-1)+1〕=(6×2+1)+〔6×(k-2)+1〕...... .......=(6×[k/2]+1)+〔6×[k/2]+1〕(k为偶数)=(6×[k/2]+1)+〔6×([k/2]+1)+1〕(k为奇数) 在前13个分解中前项有3个合数有10个素数,而后项最多有9个合数,因此前13个分解中至少有1个素+素分解.即此情况下猜想成立.证法2,用数学归纳法当N=6k-2时,若k=20N= 3 +6×19+1①=6×1-1+6×19-1 ①=6×2-1+6×18-1 ②=6×3-1+6×17-1 ③=6×4-1+6×16-1 ④=6×5-1+6×15-1 ⑤=6×6-1+6×14-1 ⑥=6×7-1+6×13-1 ⑦=6×8-1+6×12-1 ⑧=6×9-1+6×11-1⑨=6×10-1+6×10-1 ⑩分解①④⑦⑨全为素+合,⑥为合+素,①②③⑤⑧⑩全为素+素,猜想成立;假设k=I时猜想成立即:N=6k-2=6×1-1+6(I-1)-1=... + ...=素+ 素=... + ...=合(i-1) + 素(I-i+1) =素(i) + 合(I-i) =合(i+1) + 素(I-i-1)=... + ...k=I+1时N=6(I+1)-2=6×1-1+6(I+1)-1=... + ...=素+ ...=... + 素=合(i-1) + ...=素(i) + 素(I-i+1)=合(i+1) +合(I-i)=... + 素(I-i-1)分解(i)为素+素k=I+1时,N=素+素,N=6k-2时猜想成立.当N=6k+2时, ,若k=20 N= 3 + 6×20-1 ①=6×1+1+6×19+1 ①=6×2+1+6×18+1 ②=6×3+1+6×17+1 ③=6×4+1 +6×16+1 ④=6×5+1+6×15+1⑤=6×6+1+6×14+1 ⑥=6×7+1+6×13+1 ⑦=6×8+1+6×12+1 ⑧=6×9+1+6×11+1 ⑨=6×10+1+6×10+1 ⑩分解①①⑤⑥全为素+合,④⑧⑨为合+素,②③⑦⑩全为素+素,猜想成立;假设k=I时猜想成立即:N=6k+2=6×1+1+6(k-1)+1=... + ...=素+ 素=... + ...=合(i-1) + 素(I-i+1)=素(i) + 合(I-i)=合(i+1) + 素(I-i-1)=... + ...k=I+1时N=6(k+1)+2=6×1+1+6k+1=... + ...=素+ ...=... + 素=合(i-1) + ...=素(i) + 素(I-i+1) =合(i+1) +合(I-i)=... + 素(I-i-1)分解(i)为素+素k=I+1时,N=素+素, N=6k+2时猜想成立. 当N=6k时, 若k=20N=6×1-1+6×19+1①=6×2-1+6×18+1 ②=6×3-1+6×17+1 ③=6×4-1+6×16+1 ④=6×5-1+6×15+1⑤=6×6-1+6×14+1⑥=6×7-1+6×13+1 ⑦=6×8-1+6×12+1 ⑧=6×9-1+6×11+1 ⑨=6×10-1+6×10+1 ⑩或N=6×1+1+ 6×19-1 ①=6×2+1+ 6×18-1 ②=6×3+1+ 6×17-1 ③=6×4+1 +6×16-1④=6×5+1+ 6×15-1 ⑤=6×6+1+ 6×14-1 ⑥=6×7+1+ 6×13-1⑦=6×8+1+ 6×12-1 ⑧=6×9+1 + 6×11-1 ⑨=6×10+1+6×10-1 ⑩素+素分解共12个,猜想成立,假定k=I时猜想成立,同理可证k=I+1时,N=6k=素+素,猜想成立综上问题(2)得到解决.最后解决问题(3).设N≥9,且N为奇数,则N-1≥8且N-1为偶数,由(2)知N-1=n1+n2, n1,n2为奇素数,从而n1≥5,或n2≥5,否则N-1=n1+n2<8,与题设矛盾.事实上,若n2=3,因N-1=n1+n2≥8,所以n1≥5;或n1=3,则N-1≥8,从而n2≥5.假定n1≥5,则n1+1≥6,由(2)知n1+1=n3+n4,且n3,n4为奇素数,而N-1=n1+n2,所以N=(n1+1)+n2=n2+n3+n4 , n2,n3,n4为奇素数.猜想的第二部分得到证明.由以上证明可知哥德巴赫猜想成立.注:“aˉ︳b”表示a不能整除b;“︱”表示整除;“[k/2]”表示≤k/2的最大整数,“a(modb)”表示“模b同余a类”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例7-3 验证“哥德巴赫猜想”⏹“哥德巴赫猜想”是数论中的一个著名难题,200多年来无数数学家为其呕心沥血,却始终无人能够证明或伪证这个猜想。

⏹⏹“哥德巴赫猜想”表述为:任何一个大于等于4的偶数均可以表示为两个素数之和。

⏹⏹1742年法国数学爱好者哥德巴赫在给著名数学家欧拉的信中提出“哥德巴赫猜想”问题。

问题的分解求解第一步提出问题:验证哥德巴赫猜想⏹第二步设一上限数M,验证从4到M的所有偶数是否能被分解为两个素数之和。

1. 定义一个变量X,初值为4。

2. 每次令其加2,并验证X能否被分解为两个素数之和,直到 X不小于M为止。

验证哥德巴赫猜想(续一)第三步如何验证X是否能被分解为两个素数之和。

1.从P=2开始;2.判别X—P是否仍为素数:3.若是,打印该偶数的分解式。

4.否则,换更大的素数,再继续执行2.。

如此循环,直到用于检测的素数大X/2且X 与其之差仍不是素数,则打印“哥德巴赫猜想”不成立。

验证哥德巴赫猜想(续二)第四步生成下一个素数。

(1)当前素数P加1(2)判别P是否是素数;(3)若是素数,返回P;(4)否则,P加1,继续执行( 2)。

验证哥德巴赫猜想(续三)⏹经过四步分解精化,将“验证哥德巴赫猜想”这个命题已经分解为计算机可以求解的数学模型了。

⏹⏹剩下的问题就是编程求解了。

如何编程是程序设计课程要解决的问题。

哥德巴赫猜想算法分析1) 用“筛选”法生成素数表PrimeList[M]。

先在素数表中产生0到M-1的所有自然数,然后将已确定的所有素数的倍数置0(求模取余为0)。

2,3,5,7,11,13,17,19,21,23,29,31...2) 这样一来,素数表中有许多0,为找下一个素数,要跳过这些0。

3) 分解0到M-1之间的所有偶数;①循环(x <M) [x初值取4]②先取素数P=2,判别若PrimeList[x-p]等于0,说明分解不成功,p取素数表中下一个素数;再执行②③若PrimeList[x-p]不等于0,分解成功,打印分解式④x = x + 2,继续执行①,检查下一个偶数。

程序逻辑功能框图程序模块结构程序(生成素数表子函数)#include <stdio.h>#define M 31 /* 定义验证范围*/void CreatPrimeList(int PrimeList[]){ int i, j;for(i=0; i<M; i = i+1) /* 生成素数表,置初值*/ PrimeList[i] = i;i = 2; /* i 取初值2 */while( i < M / 2 )/*A能分解为两个因子相乘的话,其中一个因子必小于或等于INT(sqrt(A))。

*/ {for(j=i+1; j<M; j=j+1)/* 将表中各素数的倍数置0 */ if(PrimeList[j]!=0 && PrimeList[j]%PrimeList[i]==0)PrimeList[j] = 0;i = NextPrimeNumber(i,PrimeList);/*取下一个素数*/}}求下一个素数子函数/*---- 函数NextPrimeNumber: 求下一个素数-----*/int NextPrimeNumber(int p, int PrimeList[ ]){p = p+1;while(PrimeList[p]==0)p = p+1;return PrimeList[p];}主函数main(){ int PrimeList[M]; int x, p;CreatPrimeList(PrimeList); /*生成素数表*/x = 4; /* 从4到M 开始验证*/while(x<=M){ p = PrimeList[2]; /* 第1个素数是2 *//* 验证偶数减去一个素数后的余数是否仍为素数*/ while(p<M/2 && PrimeList[x-p] = = 0 )p = NextPrimeNumber(p, PrimeList);if(p>=M/2) /* 找到一个不能分解为两个素数和的偶数*/printf("Great discovery: Goldbahe is wrong!\n");else /* PrimeList[x-p]≠0 分解成功*/printf("The even number %d = %d + %d\n",x,p,x-p);/* 验证下一个偶数*/x = x+2;}}面向对象程序设计⏹基本思想⏹基本过程⏹主要特点面向对象的基本概念⏹“面向对象“简称为“OO”。

这是目前计算机业界使用的高频词。

“OO”代表着一种新的思维方式,代表着一种新的程序设计方法的潮流。

⏹⏹什么是OO方法?什么是OOP?⏹⏹为什么要选择OO方法?面向对象程序设计基本思想⏹面向过程的程序设计(Structure Programming) ⏹以功能为中心,采用函数来描述(动词) ⏹传统的程序设计方法,出发点是“怎样做(How)?”。

⏹面向对象程序设计(OOP)⏹面向对象程序设计方法认为,客观世界是由各种各样的实体组成的,这些实体就是面向对象方法中的对象。

⏹消息是向某对象请求服务的一种表达方式⏹对象之间的交互通过发送消息来实现。

⏹消息包括:目标对象 ,请求的方法 ,参数什么是面向对象方法⏹面向对象(OO)方法的出发点是:“是什么(What)?”。

⏹⏹现实世界是由物质组成的,人认识事物的规律:首先是认识问题域(Domain),它“是什么?”,再去认识事物的本质。

⏹⏹“对象”表现现实世界中的某个具体的事物。

传统程序设计方法存在的问题⏹生产率提高的幅度远不能满足需要⏹软件重用程度很低⏹软件维护困难⏹软件不能真正满足用户的需要生产率提高幅度远不能满足需要◆生命周期方法学强调需求分析的重要性,强调每个阶段结束之前必须进行严格的评审和质量把关。

这种“按部就班”式的开发方法效率不高。

◆◆据统计资料表明:◆从上个世纪的30中,美国软件生产率翻了两翻◆但社会对软件需求每年以两位数字的百分比增长◆◆软件的开发,已成为影响计算机应用的巨大桎梏和瓶颈。

软件重用程度很低◆“重用”也称“再用”或“复用”。

显然,软件重用是节约人力,提高软件生产率的重要途径。

◆◆传统的程序设计方法没能很好地解决软件重用问题。

◆建立标准函数库和子程序库是一种低级的可重用的尝试。

仅仅限于数学和统计学方面。

◆◆对于传统程序设计技术而言,思维成果的可重用性很差。

软件维护困难◆按生命周期方法学开发出的软件,维护成本很高,据统计数据表明,软件维护的生产率比软件开发的生产率低几十倍。

◆◆80年代,美国一年花费的软件维护费用高达300多亿美元。

◆◆90年代,软件维护费用占系统研制、开发总费用的70%~80%。

软件不能真正满足用户的需要⏹在美国,实践表明,开发出的系统中:¨符合用户需要并顺利投入使用的系统仅占总数的1/4;¨中途夭折的系统占1/4;¨将近1/2的系统,虽然完成了开发过程,但并未被用户采用或并未被长期使用。

⏹还表现在:⏹开发出的软件系统与用户预期的系统不一致,不能满足用户的需要。

⏹所开发出的系统不能适应用户经常变化的情况,系统的稳定性和可扩充性不能满足要求。

设计方法主观随意性很大⏹结构化方法采用“自顶向下,逐步求精”进行分解。

但因开发人员的经验、知识背景对问题认识的不同,而造成分解的随意性。

⏹⏹即使是对同一个系统,不同的人可能分解出不同的软件结构。

为什么选择面向对象分析法?更加自然⏹⏹当系统不断地演化时,内部的功能会变化,但是对象本质不变⏹⏹面向对象的系统更容易维护⏹⏹面向对象分析法强调对象间定义良好的界面OO方法的主要优点⏹与人类习惯的思维方法一致⏹⏹稳定性好⏹⏹可重用性好⏹⏹可维护性好与人类习惯的思维方法一致⏹人的认识过程是从一般到特殊的渐进思维过程,是从“是什么?”开始,认识事物及其本质规律,主观随意性受到限制。

⏹⏹而传统方法是从“怎样做?”开始,到“做什么?”,反认识规律而动,主观随意性太多。

稳定性好⏹传统方法以“过程为中心”,完全基于功能的分析和分解。

当功能需求发生变化时,将引起对软件结构整体的修改,这样的系统是不稳定的。

⏹⏹OO方法以“对象为中心”,它是以对象模拟问题领域中的实体,以对象间的联系描述实体间的联系。

在分析、研究对象及其属性的过程中根据其内在的规律建立求解模型。

⏹⏹基于这种方法建立的软件系统,不管功能需求如何变化,其内在规律不变,因而不会引起软件系统结构的整体变化。

因此是稳定的。

可重用性好⏹OO方法中类的继承性是一种代码重用的有效途径。

开发者在设计软件的过程中,将一些精心设计、测试过的代码不断加入到已有的类库中。

而类库是可供共享的代码库。

⏹⏹因此用OOP开发的软件具有较好的可重用性。

可维护性好⏹稳定性较好局部修改,不影响大局,错误不会传播;⏹⏹易修改采用封装机制和信息隐藏机制,使其内部实现与外界完全隔离,具有较强的独立性,较好地解决了“软件复杂性控制”问题。

⏹⏹易于阅读、理解符合人类习惯的思维方法,对原系统所做的修改,往往通过在原有类的基础上派生一些新类即可实现,易于贯通。

⏹⏹易于测试和调试派生类继承原有类的特性,只需测试新增加的特性即可。

面向对象程序设计基本过程⏹分析现实世界问题域⏹建立模型(类属性/方法的确定及类之间关系的确定)⏹编程建立类数据类型(属性、方法)⏹用类声明对象,通过对象间传递消息(方法调用)完成预定功能。

OO程序设计四个基本特征⏹⏹抽象(类)(数据抽象+代码抽象 )⏹封装(过程和数据封藏起来)⏹继承(基类和派生类)⏹多态性(虚函数、函数重载)继承性举例⏹在“人”类中,大学生可以继承“人”和“学生”的特征(继承传递);对于在职研究生既可以继承“学生”特征,又可以继承“教师”特征(多重继承)。

多态性举例⏹允许不同类的对象对同一个消息做出响应的操作机制。

⏹⏹例如,加法运算,两个时间相加和两个字符串相加,它们操作的内涵是不同的。

但是如果把它们作为不同类的对象,进行对象的相加运算,就可以实现“一个接口,多种方法”。

相关文档
最新文档