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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(最大公约数三种办法计数器流程图.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

最大公约数三种办法计数器流程图.docx

1、最大公约数三种办法计数器流程图 昆明理工大学信息工程与自动化学院学生实验报告 )1 学期 2013 学年 第 ( 2012 日10月 18 开课实验室: 2012 年课程名称:算法设计与分析442信自楼机房实验项目名称 N m% i =0 Y N n%i=0 i=i+1 Y Y r=0 N m=n n=r 求最大公约数 开始 开始 指导教师 吴晟教师评 语 该同学是否了解实验原理: A.了解 C.不了解 B.基本了解 A.强 C.差 该同学的实验能力:B.中等 未达到 该同学的实验是否达到要求:达到A. C. B.基本达到 C.不规范 实验报告是否规范: B.基本规范 A.规范 没有 C. 一

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

3、和计时法分别测算算法的运行时间;( )通过分析对比,得出自己的结论。(4 -1- 连续整数检测算法流程图: k=i 输出 结束 时间复杂度T(n)=O(log2(n)) 连续整数检测算法 -2- 欧几里得算法流程图: n 输出 结束 :T(n)=O(n/2) 时间复杂度欧几里得算法 -3- 分解因式算法图 开始 输入 Y N a10,b10,s,t=2,i=0,all,i1,i2; m=m/t; ai=t,.i+ Y all=all*ai1 N t+ N Y s=n%t Y Y s=0 N N n 和m m=1| n=1 s=m%t s=0m=all n=n/t ;bi=t; i+; all=

4、1 for(i2=0;i2i;i2+) all=all*bi2; n=all Y all=1 /利用循环,求出公共质因数 for(int s1=0;s1i1;s1+) for(int s2=0;s2i2;s2+) if(as1=bs2) all=all*as1; -4- couallendl; 结束 分解因式时间复杂度 :T(n)= O(n/2) + O(log2(n) 三、所用仪器、材料(设备名称、型号、规格等或使用软件) 1台PC及VISUAL C+6.0软件 四、实验方法、步骤(或:程序代码或操作过程) #include stdio.h #include #include #includ

5、e #include int jishiqi_0(); int jishiqi_1(); int jishiqi_2(); int jishiqi_3(); float now,t0,t1,t2,t3; using namespace std; int m,n,c,k; /- int jishiqi_0()/输入时延长的多余时间 int i,j; for(i=1;i=10000;i+) for(j=1;j=20000;j+); t0=(clock()-now)/CLOCKS_PER_SEC; return 0; /- -5- int jishiqi_1()/分解因式算法所用时间 int i,j

6、; for(i=1;i=10000;i+) for(j=1;j=20000;j+); t1=(clock()-now)/CLOCKS_PER_SEC-t0; 牰湩晴尨分解因式算法所用时间为:%f msn,t1); return 0; /- int jishiqi_2()/欧几里得算法所用时间 int i,j; for(i=1;i=10000;i+) for(j=1;j=20000;j+); t3=(clock()-now)/CLOCKS_PER_SEC-t0-t1-t2; 牰湩晴尨欧几里得算法所用时间为:%f msn,t3); return 0; /- int jishiqi_3()/连续检测

7、算法所用时间 int i,j; for(i=1;i=10000;i+) for(j=1;jn?m:n); for(int i=1;i=c;i+) if(m%i=0&n%i=0) k=i; else continue; return k; /- int OJ(int m ,int n)/欧几里得算法 jishiqi_2(); int r; r=m%n; while(r!=0) m=n; n=r; r=m%n; return n; /- 分解质因数法int FJ(int m,int n)/ jishiqi_1(); if(m=1|n=1) 1endl; 潣瑵?最大公约数为: int a10,b10

8、,s,t=2,i=0,all,m1,n1,i1,i2; m1=m; n1=n; -7- coutm=; while(1) s=m1%t; /求m1除以t(t为2)的余数s if(s=0) /如果s为0,说明可以整除,则进行下面操作,记录t为质因数其中之一 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; /判断该整数的质因数是否全部求出 cout*; else t+; i=0; /把i重置为0,进行整数n的求质因数 coutendl; coutn=; w

9、hile(1) s=n1%t; if(s=0) n1=n1/t; bi=t; coutt; i+; t=2; all=1; for(i2=0;i2i;i2+) all=all*bi2; if(n=all) break; cout*; else t+; coutendl; all=1; for(int s1=0;s1i1;s1+) /利用循环,求出公共质因数 for(int s2=0;s2i2;s2+) if(as1=bs2) -8- all=all*as1; bs2=0; /已经配对的质因数被清0,避免出现重复性的错误! break; 潣瑵?最大公约数为: allendl; return 0;

10、 /- int main()/主函数 char c; while(1) cout=endl; cout 求最大公约数的程序endl; cout 1、分解质因数法 连续整数检测法 欧几里得算法 endl; cout=c; switch(c) case 1: 潣瑵?请分别输入两个整数mn; FJ(m,n); 潣瑵?最大公约数为:LX(m,n)endl; 潣瑵?最大公约数为:OJ(m,n)endl; break; default: 潣瑵?请重新输入!endl; break; return 0; -9- 五、实验过程原始记录( 测试数据、图表、计算等) 请给出各个操作步骤的截图和说明; -10- -1

11、1- 六:实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必须用计算纸或程序运行结果、改进、收获) 得出 : 我们从前面的时间复杂度 T(n) )log2(n)O(n/2) + O( O(n/2) Olog2(n) (欧几里得算法的是最优算法,其次是连续整除法,最复杂的是分解质因数算法。再从代码运行的计数器和计算的时间来看结果恰好和前面的复杂度得到的结果一致,所以得出结论-12- 欧几里得算法最优。 通过对三种计算最大公约数方法的比较解了算法设计的初步概念并对求公约数问题有了更深的认识。了解到了算法的优与劣的差别,虽然得到的是同样的结果,但是,需要的时间和资源却相差很大这提示我们在以后写算法的时候要找出最优算法。也告诉了我们算法对于一个程序的重要性,我们要对这门课产生足够的重视。 分解因式算法由于比较复杂,本人并不会,是从网上copy下来的。本程序在计时器上还有待改进。 注:教师必须按照上述各项内容严格要求,认真批改和评定学生成绩。 -13-

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1