mathematica数学实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
mathematica数学实验报告
姓名 *** 学院 数信学院 班级
************ 学号 ************ 实验题目
素数 评分 实验目的:
1、掌握素数的判别方法,并会求解某些范围内的素数;
2、通过编程演示某些范围内的素数、深刻了解其求解过程;
3、通过上机来增强自己的动 手能力及实践创新能力。
实验环境:
学校机房,Mathematica4.0软件
实验基本理论和方法:
1、Mathematica 中常用的函数及函数调用的方法;
2、对素数的概念及特征的掌握,利用素数的特征求素数。
实验内容和步骤:
如果一个大于1的自然数只能被1及它本身整除,则该数称为素数。否则被称为合数。从数学史的黎明时期开始,数学家就一直在探索自然数的奥秘。远在古希腊时代,欧几里得就证明了每一个合数都可以分解为若干个素数的乘积,并在不计较素数的排列顺序时这种分解是唯一的,这就是所谓的算术基本定理,算术基本定理表明,素数是构造自然数的基石,正如物质的基本粒子一样。正是由于素数如此重要的地位才使得一代又一代数学家努力地探索素数的规律。首先,一个最基本的问题是
素数到底有多少个?
会不会在某一充分大的自然数以后就没有素数了呢?答案是否定的。欧几里得时代已证明了这一结论。他使用的简洁而优美的论证方法至今仍不失为数学推理的光辉典范。假设素数只有有限个,按从小到大的顺序排列为12,,...,.n p p p 。令12...1n N p p p =+,则N 不被,1,2,...,i p i n =中任何一个整除。因而,N 要么是素数,要么有比n p 大的素因子,这与n p 为最大素数相矛盾。
关于素数的下一个基本问题是:如何求出小于某一给定整数的所有素数?
1. Eratosthenes 筛法求素数
古希腊的另一位学者Eratosthenes 给出了解决这一问题的方法,这一方法被后人称为Eratosthenes 筛法。Eratosthenes 筛法的基本思想是,将自然数列从2开始按顺序排列至某一整数N 。首先,从上述数列中划去所有2的倍数(不包括2)。在剩下的数中,除2外最小的是3。接着,从数列中划去3的倍数(不包括3)。然后在剩下的数中,再划去5的倍数……。这个过程一直进行下去,则最后剩下的数就是不超过N 的所有素数。下面我们就利用筛法通过编程实现求某个数的所有素数。
利用Eratosthenes 筛法,通过计算机编程求100,500,1000,1500的所有素数,运行过程如下:
2.利用试除法求素数
筛法是用乘法寻找素数,实际上,也可以用试除法判断一个数是否是素数。而且,用试除法的效率可能会更高。假设我们已经找到了前n 个素数22,3,...,i n p p p ==,为了寻找下一个素数,我们从2n p +开始依次检验每一个整数N ,看N 是否能被某个,1,2,...,i p i n =整除。如果N 能被前面的某个素数整除,则N 为合数。否则N 即为下一个素数1n p +。实际上,为了提高算法的效率,我们不需要用前面的每一个素数去试除N ,
而只需用不超过N的素数去除就可以了。
下面我们运用试除法来求100,500,1000所有的素数,程序运行如下:
从以上的运行过程可以看出,试除法求素数比Eratosthenes筛法更快。
3.数素性的判别
数素性的判别方法有三种,即:1)n-1检验法2)基于广义黎曼猜想的判别法3)概率判别法,下面我们利用概率判别法对2,3,...,100
n 这些数进行数素性判别,程序运
行如下:
由此,我们可以看到对一个数的数素性判别有好多方法。素数在我们学习的数中扮演着很重要的角色,所以判断一个数是否是素数是非常有用的。
实验结果和结果分析:
附录: