ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:73.25KB ,
资源ID:7510842      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7510842.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(昆明理工大学 算法 实验一 求最大公约数Word格式文档下载.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

昆明理工大学 算法 实验一 求最大公约数Word格式文档下载.docx

1、 A.达到 B.基本达到 C.未达到实验报告是否规范: A.规范 B.基本规范 C.不规范实验过程是否详细记录: A.详细 B.一般 C.没有 教师签名: 年 月 日一、上机目的及内容上机内容求两个自然数m和n的最大公约数。上机目的(1)复习数据结构课程的相关知识,实现课程间的平滑过渡;(2)掌握并应用算法的数学分析和后验分析方法;(3)理解这样一个观点:不同的算法能够解决相同的问题,这些算法的解题思路不同,复杂程度不同,解题效率也不同。二、实验原理及基本技术路线图(方框原理图或程序流程图)(1)至少设计出三个版本的求最大公约数算法;(2)对所设计的算法采用大O符号进行时间复杂性分析;(3)上

2、机实现算法,并用计数法和计时法分别测算算法的运行时间;(4)通过分析对比,得出自己的结论。三、所用仪器、材料(设备名称、型号、规格等或使用软件)1台PC及VISUAL C+6.0软件四、实验方法、步骤(或:程序代码或操作过程) 1.连续整数检测#include /连续整数检测int gcd(int m,int n) int t=mn ? n:m; while(true) if(m%t=0) if(n%t=0) return t; else t-; void main() int m,n; coutmn)Output:gcd(m,n)2.欧几里得算法#include/欧几里德算法 int r;

3、while( n!=0) r = m%n; m=n; n=r; return m;3.分解质因数/分解质因数法int FJ(int m,int n) if(m=1|n=1) 最大公约数为:1 int a10,b10,s,t=2,i=0,all,m1,n1,i1,i2; m1=m; n1=n;m=; while(1) s=m1%t; /求m1除以t(t为2)的余数s if(s=0) m1=m1/t; ai=t; /把t摆在数组a中 coutt; i+; t=2; all=1; for(i1=0;i1i;i1+) all=all*ai1; if(m=all) break; /判断该整数的质因数是否

4、全部求出* else t+; i=0; /把i重置为0,进行整数n的求质因数n s=n1%t; n1=n1/t; bi=t; for(i2=0;i2i2+) all=all*bi2; if(n=all) break; all=1; for(int s1=0;s1i1;s1+) /利用循环,求出公共质因数 for(int s2=0;s2i2;s2+) if(as1=bs2) all=all*as1; bs2=0; break;alln; FJ(m,n);3.计数法和计时法分别测算算法的运行时间#includeiostream.hstdio.hstdlib.htime.h#define N 100

5、int w1,w2,w3;/用于计数int f1(int m,int n) /连续整数检测 w1+;w1+;int f2(int m,int n) /欧几里德算法 w2+;int f3(int m,int n) /分解质因数法 /cout /cout w3+;w3+; return all; int k; k=f1(m,n); printf(方法一最大公约数为: %dn,k); k=f2(m,n);方法二最大公约数为: k=f3(m,n);方法三最大公约数为:n计数器显示结果:nnn);方法一: %d n,w1);方法二:,w2);方法三:,w3);n-n float a,i; clock_t

6、 start,finish; double usetime; start= clock(); while (i100000) f1(m,n); i+; finish=clock(); usetime= finish-start;方法一用时%.f*10(-6) 豪秒n, usetime); f2(m,n);方法二用时%.f*10(-6) 豪秒n f3(m,n);方法三用时%.f*10(-6) 豪秒n五、实验过程原始记录( 测试数据、图表、计算等) 1.连续整数检测4.计数法和计时法分别测算算法的运行时间六、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必须用计算纸或程序

7、运行结果、改进、收获)第一种,连续整数检测法。根据代买考虑最坏情况他们的最大公约数是1,循环做了t-1次,最好情况是只做一次,所以O(n)=n/2。第二种,欧几里得算法。根据代码辗转相除得到欧几里得的O(n)=log n。第三种,分解质因数法。根据代码分解质成因子算法O(n)=n2+n/2。结果分析:从前面的复杂度O(n)的出欧几里得算法的是最优算法,连续整除法其次,最复杂的是分解质因数算法,再从代码运行的计数器和计算的时间来看结果恰好和前面的复杂度得到的结果一致,所以的出结论:欧几里得算法最优。通过对三种计算最大公约数方法的比较,了解了算法设计的初步概念,并对求公约数问题有了更深的认识。了解到了算法的优与劣的差别,虽然得到的是同样的结果,但是需要的时间和资源却相差很大,这提示我们在以后写算法的时候要找出最优算法。也告诉了我们,算法对于一个程序的重要性,我们要对这门课产生足够的重视。注:教师必须按照上述各项内容严格要求,认真批改和评定学生成绩。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2