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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(分治法实验报告.doc)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

分治法实验报告.doc

1、算法实验报告一 分治法实验一、实验目的及要求利用分治方法设计大整数乘法的递归算法,掌握分治法的基本思想和算法设计的基本步骤。要求:设计十进制的大整数乘法,必须利用分治的思想编写算法,利用c语言(或者c+语言)实现算法,给出程序的正确运行结果。(必须完成)设计二进制的大整数乘法,要求利用分治的思想编写递归算法,并可以实现多位数的乘法(利用数组实现),给出程序的正确运行结果。(任选)二、算法描述1、输入两个相同位数的大整数u,v输出uv的值判断大整数的位数i;w=u/10(i/2);y=v/10(i/2);x=u-w*10(i/2);z= v-y*10(i/2);然后将w,x,y,z代入公式求得最

2、后结果uv=wy10i+(w+x)(y+z)-wy-xz)10(i/2)+xz三、调试过程及运行结果在实验中我遇到的问题:原来以为这两个大整数的位数不同,结果题目要求是相同位数的大整数 在写10的多少次方时,写的是10(i/2),10(i),结果不对,我就将它改成了for循环语句四、实验总结在本次实验中,我知道了分治算法,以及分治算法的基本思想。我还掌握了编写大整数乘法的算法与步骤,以及如何修改在编写程序时遇到的问题。五、附录(源程序代码清单)1、#include<iostream.h>int weishu(int x)int i;while(x!=0)x=x/10;i+;retu

3、rn i;void main()int u,v;cout<<输入两个位数相同的大整数:<<endl;cin>>u;cin>>v;int i,j,m,n;int p,x,y,z,w;int a=1;int b=1;i=weishu(u);for(int k=1;k<=i;k+)a=a*10;for(int q=1;q<=i/2;q+)b=b*10;w=u/b;y=v/b;x=u-w*b;z=v-y*b;p=w*y*a+(w+x)*(y+z)-w*y-x*z)*b+x*z;cout<<u<<*<<v&l

4、t;<=<<p;教师评语:成绩:优 良 中 及格 不及格算法实验报告二 动态规划法实验一、实验目的及要求利用动态规划方法设计背包问题算法,掌握动态规划法的基本思想和算法设计的基本步骤。要求:设计0/1背包问题的动态规划算法,要求输出背包内物品的最大价值以及选入背包的物品种类。利用c语言(c+语言)实现算法,给出程序的正确运行结果。二、算法描述输入:各物品的体积、价值,背包容量输出:放入背包的物品的体积,放入物品的最大价值for i<-0 to nvi,0<-0end forfor j<-0 to cvj,0<-0end forfor i<-1 t

5、o nfor j<-1 to cvi,j<-vi-1,jif(si<=j and vi-1,j-si+vi)>vi,j )vi,j<-vi-1,j-si+viitemj=iend forend forfor i<-c downto 1 (i=i-itemi的体积)printf(sitemi)end forreturn vn,c三、调试过程及运行结果在定义数组时数组的大小不能是变量,也不能定义一个变量从键盘输入一个常数,再用这个变量定义数组,只能直接用常量定义数组或者用宏定义的量来定义数组。在进行多个for循环时,不管他们之间有没有关系,循环中定义的变量不能一

6、样。在定义数组v时,数组大小必须是n+1、c+1。四、实验总结在进行本次实验时,我知道了背包程序的算法以及它的基本的意思,算法想要做什么。我还掌握了一些在学c+时没有注意到的一些小问题。如在定义数组时数组的大小不能是变量,也不能定义一个变量从键盘输入一个常数,再用这个变量定义数组,只能直接用常量定义数组或者用宏定义的量来定义数组。 在进行多个for循环时,不管他们之间有没有关系,循环中定义的变量不能一样。 在定义数组v时,数组大小必须是n+1、c+1。五、附录(源程序代码清单)#include<iostream.h>#define n 10#define c 12void main

7、()int sn,vn;int vn+1c+1;int itemc;cout<<物品的体积:<<endl;for(int f=0;f<n;f+)cin>>sf;cout<<物品的价值:<<endl;for(int h=0;h<n;h+)cin>>vh;for(int k=0;k<=n;k+)vk0=0;for(int m=0;m<=c;m+)v0m=0;for(int i=1;i<=n;i+)for(int j=1;j<=c;j+)vij=vi-1j;if(si<=j &&

8、amp; vi-1j-si+vi>vij) vij=vi-1j-si+vi; itemj=i;cout<<放入背包的物品的体积:<<endl; for(int p=c;p>=1;p=p-sitemp)cout<<sitemp;cout<<endl;cout<<背包的最大价值:;cout<<vnc<<endl;教师评语:成绩:优 良 中及格 不及格篇二:分治算法实验报告本科学生综合性实验报告姓名 刘春云 学号 0103918专 业 软件工程 班级 103 实验项目名称二分搜索问题的分治算法实验 指导教

9、师及职称赵晓平 开课学期 2011至 2012 学年 3 学期上课时间 2012 年 2 月 18 日学生实验报告(1)一、问题描述二分查找又称折半查找,即在一串已排好序的需要处理的数据中多次用折半的方法查找出要搜索出的数据。二、解题思路首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。三、算法描述用一个数组来存储数据,具体的结构

10、体为: typedef struct list double elem100; int length;list;其中length是数据的总个数比较表中间位置记录的关键字与查找关键字的大小,逐步缩小查找范围 实现代码为: while(low<high)mid=(low+high)/2; if(l.elemmid=key) else if(l.elemmid<key)low=mid;outfile<<你所要搜索的数据在第<<mid+1<<个位置<<endl; break;elsehigh=mid;if(high=low+1) outfil

11、e<<抱歉!你所要搜索的数据不在你所输入的数据中break;<<endl;范围在上段代码中low表示搜索区间的最小范围,hiah则表示搜索区间的最大在代码中出现的int init_list(list&l)是一个初始函数用于从input.txt文件中读入数据并判断数据是否升序排列。int search(int low,int high,list&l)是查找函数用于折半查找。四、算法实现#include <iostream> #include<fstream> using namespace std; typedef struct l

12、ist double elem100; int length;list;int init_list(list&l)/初始化函数 int search(int low,int high,list&l)/查找函数 int search(int low,int high,list&l); int n=0; ifstream infile;cout<<请输入数据(必须是从小到大排序的)<<endl; infile.open(input.txt,ios:in); ofstream outfile;outfile.open(output.txt,ios:ap

13、p);while(infile>>l.elemn)/从文件中输入已排序数组,直到文件中无数据读取n+;infile.close(); l.length=n;for(int i=0;i<l.length-1;i+)/判断输入的数据是否有序 if(l.elemi>l.elemi+1) outfile<<朋友请不要玩我!<<endl; return 0;/判断输入的数据是否有序cout<<二分查找中.<<endl; search(0,l.length-1,l);return 1;ofstream outfile;outfile.

14、open(output.txt,ios:app); int mid=0;/中点篇三:分治法实验报告石家庄经济学院算法设计与分析实验报告姓 名:班 级:学 号:指导教师:完成日期:一、实验名称分治法实验二、实验目的1. 掌握分治法的基本思想、求解问题的基本步骤;2. 掌握分支算法的一般模式;3. 根据问题采取有效的分解和合并的方式,能够分析确定问题的阈值;4. 掌握分治算法的时间复杂度,并能利用c语言实现算法。三、实验内容及要求1. 大整数乘法。要求:(1) 求解两个n位的二进制整数的乘法,设n=2k;(2) 利用分治的思想分析和求解问题;(3) 利用c语言实现算法,要求结果正确。2. 矩阵相乘

15、(选做)(1) 求解两个n阶方阵的乘法,设n=2k;(2) 可利用基本的分解方法或者stranssen方法求解;(3) 利用c语言实现算法,要求结果正确。四、问题分析及算法设计1. 大整数乘法问题分析:算法设计:算法复杂度分析:2. 矩阵乘法问题分析:算法设计:算法复杂度分析:五、代码及运行结果六、实验总结(要求总结本次实验遇到的问题及解决方法,收获和不足,300字以上,提交报告时删去此行)教师评语:成绩: 优 良 中 及格 不及格篇四:算法-实验报告-分治法年级 2012 学院 专业班级 学生姓名 学号 算法分析与设计 实验报告(1) 篇五:算法实验四分治法实验报告算法实验四 分治法实验实验一 最近点对最近点对问题描述:对平面上给定的n个点,给出所有点对的最短距离即,输入是平面上的n个点,输出是n点中具有最短距离的两点要求随机生成n个点的平面坐标,应用穷举法编程计算出所有点对的最短距离要求随机生成n个点的平面坐标,应用分治法编程计算出所有点对的最短距离。二、实验数据及分析平面点数为100:平面点数为 500平面点数为1000:可以看出,分治法的运行效率要明显比直接法要高。

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

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