摘要:哥德巴赫猜想是世界三大难题之一,被称为“数学界中的掌上明珠”。Python语言是一门面向对象的解释型高级程序设计语言,同时也是一种新的脚本解释语言。利用Python语言对哥德巴赫猜想问题进行验证,给出了算法过程,对具体的数和范围进行了验证,并得出仿真结果。
加入收藏
1、概述
Python语言[1,2]是一门面向对象的解释型高级程序设计语言,其不仅开源,而且支持命令式编程,包含丰富且易理解的标准库和扩展库,可以快速生成程序的原型,帮助开发者高效地完成任务。同时,Python语言语法简单、结构简单、可读性高,能够使编程人员专注于解决问题而不是搞明白语言本身,从而提高开发效率。
哥德巴赫猜想作为数学界中的掌上明珠,迄今为止没有学者可以证明猜想的正确性。利用Python语言对该猜想进行验证,同时给出算法步骤和具体程序。结果表明,该程序可以提高验证效率,同时便于读者更好理解这一猜想。
2、哥德巴赫猜想
2.1猜想描述
德国数学家哥德巴赫在1742年给欧拉的信中提出了这一猜想:“任何一个大于2的整数都可以写成3个素数之和”。当时最伟大的数学家欧拉也无法证明这一猜想,直到19世纪末都没有取得任何进展。今日的哥德巴赫猜想[3]被描述为欧拉的版本,即:任何一个大于2的偶数都可以写成两个素数之和。
2.2研究历史
为了对这一问题进行证明,科学家还在尝试走另外一条道路。即证明每个大偶数可以表示为:一个素因数不超过a个的数与一个素因数不超过b个的数之和,称这一命题为(a+b)。哥德巴赫猜想就是要证明命题(1+1)是正确的。
1920年,挪威数学家布朗首先证明了(9+9),此后这方面的工作不断取得进展;1957年,我国数学家王元证明了(2+3);1962年,我国数学家潘承洞证明了(1+5),同年又和王元合作证明了(1+4)。
1966年,中国数学家陈景润[4]证明了(1+2),并于1973年发表,立即轰动了国际数学界。尽管从(1+2)到(1+1)只有一步之隔,但这一步却有难以想象的艰难。许多科学家认为,要想证明(1+1),就必须创造出新的方法,以往的路都是走不通的。
3、Python语言
程序处理的对象是数据,编写程序也就是对数据的处理过程,而运算符是对数据进行处理的具体描述。限于篇幅所限,选取Python中部分运算符进行介绍:
(1)算术运算符(+、-、*、/、**、//、%),其中//表示整除运算。
(2)关系运算符(>、<、>=、<=、==、!=)。
(3)逻辑运算符(and、or、not)。
(4)赋值运算符(=、复合赋值运算符)。
(5)位运算符(<<、>>、~、|、^、&)。
(6)成员运算符(in、notin)。
另外,程序中具有相同性质的集合称为数据类型。Python的数据类型可以分为简单类型、序列以及其他类型。其中,简单类型包括整型、实型(浮点型)、复数类型和布尔类型,序列类型包括列表、元组和字符串,其他类型包括字典和集合。
同时,程序设计语言只是一种工具,只懂得语言的规则并不能保证编写出高质量的程序。程序设计的关键是设计算法,算法与程序设计和数据结构密切相关。算法就是解决问题的一系列操作步骤的集合,可以通过高级语言的语句来实现。通过这些语句,一方面体现了算法的思想,另一方面指示计算机按算法的思想去工作,从而解决实际问题。
一个算法所具有的特性是:有穷性、确定性、可行性、有输入、有输出、有效性。
4、算法实现
使用Python语言对哥德巴赫猜想进行验证时,需要对判断给定的数是否是素数。素数[5]的概念是:在大于1的自然数中,除1和本身外不再有其他因数的自然数。因此在程序中,isprime函数用于判断给定自然数n是否是素数,设置变量flag表示自然数n是否是素数,循环变量i的范围是2到n-1,如果在循环过程中发现n存在除1和本身之外的因子,即n%i==0,则立即退出循环,置flag为0,最后对flag进行判断,若flag值为1,则n是素数,反之则不是。
例如,输入的自然数为10,则主程序的循环变量i的范围是2到5,如果i和10-i都是素数,则证明这是一种分解结果,输出即可。
该问题的Python程序如下所示:
程序1
在上述程序的基础上,可以对一定范围内的自然数进行验证,判断哥德巴赫猜想在某一范围内是否成立。利用函数的特性,对上述程序中的哥德巴赫猜想验证问题进行封装,并在主程序中更改循环条件,函数GoldbachConjecture用于哥德巴赫猜想验证。该问题的Python程序如下所示:
程序2
5、实验
在Windows8操作系统中对上节中所给出的两个程序进行仿真实验。该实验的软件运行环境为Python3.4.2,硬件主机的配置环境为IntelCorei5-24302.4Ghz,RAM2GB。
针对第1个程序,可验证一个大于2的偶数是否符合哥德巴赫猜想,若符合,则给出所有的分解方式,若不符合,则给出相应的提示。如图1所示,当输入的偶数为30时,可得到3种分解方式。
图1程序1验证结果
针对第2个程序,可验证在一定范围内的全部偶数是否符合哥德巴赫猜想,程序的输出为验证结果。如图2所示,当输入的范围的末端值为1000时,可得到从4到1000范围内的所有偶数都符合哥德巴赫猜想。
图2程序2验证结果
6、结语
阐述了哥德巴赫猜想的定义、给出科学家对哥德巴赫猜想的研究历史,使用Python语言对哥德巴赫猜想问题进行验证,先针对具体的偶数进行验证,再对一个特定范围内的所有偶数进行验证,给出该范围内的数是否都符合哥德巴赫猜想。事实上,程序在对素数进行判断时,利用的是传统的定义法,这种方法在数字比较大时会消耗较多时间。与此同时,在对特定范围内的所有偶数进行验证时,如果给定范围较大,验证效率也会比较低。因此,在未来的研究中,将对以下几个方面进行探究:(1)对判断素数的方法进行优化,如采用“筛选法”等高效的素数判断方法;(2)在对特定范围内的所有偶数进行验证时,如果范围较大,可以采用多台机器进行分布式验证求解,以提高检测效率;(3)利用计算机语言对更多数学猜想进行验证,如“费马定理”等。
参考文献:
[1]王小银,王曙燕,孙家泽.Python语言程序设计[M].北京:清华大学出版社,2017:1-3.
[2]郭海涛,蒋琳.Python中实现地图数据可视化[J].电脑编程技巧与维护,2018,(9):105-107.
[3]张春山.关于哥德巴赫猜想的一个注记[J].大学数学,2018,34(5):19-22.
[4]李小凝.《哥德巴赫猜想》创作发表逸事———陈景润秘书的回忆[J].2019,(1):72-74.
[5]徐斌.在概念学习中提升数学素养———评陆丽萍《素数和合数》一课[J].江苏教育研究,2012,(10):36-37.
王振宇,李晓卓,谢江欢,曲凯.基于Python的哥德巴赫猜想问题验证方法[J].电脑编程技巧与维护,2020(02):17-19.
基金:西安邮电大学创新基金项目(CX2016-07)
分享:
2008年应用Kuromoto-like模型对电网进行了深入的研究,同时得到了有效的电网动力学模型,并且得出:电网必须保持同步,很小的扰动会引起级联故障,导致大规模停电事故发生,这就表明电网的控制尤为重要.本文中,笔者基于反馈控制的思想,实现了对电网同步能力的改变,分析了反馈增益的取值对同步能力的影响.
2020-09-091、数论函数方程φ(φ(n))=S(n15)的可解性2、一个含有伪Smarandache函数的方程3、10的倍数分拆素数和的“1-9猜想”及思考4、有关数论函数φ(m)的一方程整数解的讨论5、纽结理论在数论中的应用6、用易经诠释考拉兹猜想7、数论函数方程φ2(n)=S(SL(nk))的可解性8、大学生就业当中的数学原理及其应用9、含混合型简数根函数的两个数论函数方程的解
2020-08-11纽结理论看似与数论[1]毫不相干,但已有不少纽结方面的结果是用数论来表达的,例如文献[2]。本文将给出反向的情形,即利用纽结理论证明数论的2个结果: 定理1若m,n是互素的整数,则24整除(m2-1)(n2-1)。 定理2若m,n是互素的整数,则12整除(m-1)(n-1)(2mn-m-n-1)。 容易举例说明,若m,n不是互素,则定理就不成立。
2020-08-10素数的判定算法是对输入的整数判定是素数还是合数,分为概率算法和确定算法。素数构造算法是输入小素数,经过若干次循环构造出大的素数。对已有的素数构造和判定算法进行梳理,给出算法的描述并编程实现Miller-Rabin素数测试算法、基于莱梅定理的素数构造算法、AKS素数测试算法及变体算法,对上述算法的效率进行比较。
2020-06-28对于某些特殊的数学问题,即使只是简单地回答“知道”或者“不知道”,也有可能传送出一些有用的信息。考官C从区间[2,99]中选出两个整数n和m,将这两个数的和p=n+m与积q=n×m的数值分别告诉参加测试的智者B与智者A。C要求B与A说出n与m是多少,但不能将自己知道的p与q的值告诉对方。
2020-06-28哥德巴赫猜想:任何大于4的偶数都可以用2个素数之和表示.本文对根据增殖算法得到的素数分布规律进行了深入的探讨,并在此基础上创建了素数周期循环分布表,计算出两个相邻素数的最大间隙不超过420,找出了105个位缺带对称群,并用位缺带全方位多重对称性证明了哥德巴赫猜想.
2020-06-28文献[1,2]分别介绍了分解因子法与递归序列法在不定方程中的应用,本文介绍另一种初等方法——幂比较法,在不定方程中的应用.所谓幂比较法,是指在不定方程两边比较某因数的最高方幂,以此来导致矛盾的方法.本文利用幂比较法证明了以下定理1和定理2,并同时得到推论1、推论2和推论3.
2020-06-28本文将研究包含了伪Smarandache函数Z(n)、简数根函数与p次幂原数函数Sp(n)的复合数论函数方程Z(n)=Sp(sim(n))(其中p=2,3,5)的可解性,并分别给出每个方程的全部解.并推广了一个关于计算p次幂原数函数Sp(n)值在n>p时,更加简易的计算公式以及证明该公式所用的方法.
2020-06-28初等数论是小学教育专业的一门专业必修课,这门课程与中小学的联系比较紧密,学生开始学习第一章(整数的可除性)时,都觉得简单易懂,但从第二章(不定方程)开始,大部分学生就感觉上课基本能听懂,但一做练习就错,其实出现这种现象的原因就是学生没有真正理解初等数论中的数学思想方法。所以,研究初等数论的教学方法是数论教师必须要研究的一项重要课题。
2020-06-28整数是数学研究的一个方向。组合数学中就有关于正整数在不同分部量下分拆数的研究。对于一个给定的不定方程(或方程组),它是否有解,如果有解,解是不是唯一的,能不能求出它的所有解,这是数论的一个研究方向。对每一个有基础解的方程,求解得出它的基础解,由这些基础解可以计算得到方程的多个整数解。
2020-06-28人气:4585
人气:3593
人气:3384
人气:3134
人气:2978
我要评论
期刊名称:数学进展
期刊人气:3710
主管单位:中国科学协术协会
主办单位:中国数学会
出版地方:北京
专业分类:科学
国际刊号:1000-0917
国内刊号:11-2312/O1
邮发代号:2-503
创刊时间:1955年
发行周期:双月刊
期刊开本:16开
见刊时间:一年半以上
影响因子:0.553
影响因子:0.322
影响因子:0.352
影响因子:0.000
影响因子:0.000
您的论文已提交,我们会尽快联系您,请耐心等待!
你的密码已发送到您的邮箱,请查看!