费马大定理的Python简单验证_第1页
费马大定理的Python简单验证_第2页
费马大定理的Python简单验证_第3页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——费马大定理的Python简单验证

王德贵刘洋

在Python的学习过程中,通过编写程序来解决一些实际问题,也是一种乐趣。在数学史上,关于数论的有名世界难题好多,了解数学家们如何破解这些难题让人深受启发和鼓舞。今天我们就用Python来简单地验证费马大定理。一、费马大定理简介

费马大定理,又称费马问题,是数论中最有名的世界难题之一。

概括来说就是当整数n>2时,关于x,y,z的方程xn+yn=zn,无正整数解。

你看这个方程是不是和求勾股数的类似,只是2次方变成了n次方,我们后面的验证,也是根据这个思路进行的。二、创意来源

看到这个定理内容,就想到了勾股数,我们用Python编写程序,在一定取值范圍内验证费马大定理。

假如想了解更深入的知识,大家可以参考相关资料。今天我们利用Python只做简单的验证。三、设计思路

根据《趣味数学——勾股数》一文的分析,勾股数是平方,这里就变成了大于2的正整数,程序设计不难,验证的范围越大,幂次越高,时间繁杂度会几何级数增大,大家可以自行测试。四、程序设计

1.费马大定理:

根据勾股数的例子,我们不难写出Python程序。代码如图1。

程序中有三重for循环,外层循环,即是输入的最大范围,然后再确定指数幂,在1~n整数范围内逐个验证,假如有满足条件的x,y,标记s=1,然后输出屏幕,否则继续验证,假如s=0的值没有改变,即没找到任何满足条件的数,则输出无整数解(图2)。

2.时间繁杂度(等级考试四级内容)

在循环的开始和终止,加上计时器,测试发现,指数为3时,在100范围内耗时大约0.28秒,200范围内耗时1.94秒,500范围内耗时36.28秒。而指数为4时,100、200、500范围内分别耗时0.39秒、1.92秒、60.62秒。随着数值的增大,需要的时间也更长(图3)。

时间繁杂度就要根据你输入的范围决定了。譬如100,那时间繁杂度即为100万。

假如范围再增大,则时间繁杂度也会增大,需要的时间就会更长。五、测试与改进

通过测试,在一定范围内,均得到了验证,但数值过大时,用时较长。当然我们要证明一个定理,不可能把所有值都验证,还需要理论上的证明。

因此费马大定理程序,可以利用pow()函数进行改进,减小时间繁杂度(图4)。

pow(x,y)函数表示的是xy,00,y>0,z>0,n>2,使xn+yn=zn,则x>101800000。直到1994年10月英国数学家安德鲁·怀尔斯(AndrewWiles)终究证明白费马大定理,为这个从1637年至今的数学谜题画上了圆满的句号。

我们这里只是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论