算法设计与分析实验报告三篇

2、0进制整数n(1n109)。编程计算书的全部页码中分别用到多少次数字0,1,2,9。程序算法将页码数除以10,得到一个整数商和余数,商就代表页码数减余数外有多少个19作为个位数,余数代表有1余数本身这么多个数作为剩余的个位数,此外,商还代表1商本身这些数出现了10次,余数还代表剩余的没有计算的商的大小的数的个数。把这些结果统计起来即可。程序代码#includeints10;记录09出现的次数inta10;/ai记录n位数的规律voidsum(intn,intl,intm)if(m=1)(intzero=1;for(inti=0;i=l;i+)/去除前缀0(

3、s0-=zero;zero*=10;if(n10)for(inti=0;i=n;i+)si+=1;return;/位数为1位时,出现次数加1/位数大于1时的出现次数for(intt=1;t=l;t+)/计算规律f(n)=n*10A(n-1)m=1;inti;for(i=1;it;i+)m=m*10;at=t*m;intzero=1;for(inti=0;il;i+)zero*=10;/求出输入数为10的n次方intyushu=n%zero;/求出最高位以后的数intzuigao=n/zero;/求出最高位zuigaofor(i=0;izuigao;i+)si+

4、=zero;/求出0zuigao-1位的数的出现次数for(i=0;iyushu)i+;s0+=i*(yushu+1);/补回因作模操作丢失的0szuigao+=(yushu+1);/补卜回最高位丢失的数目sum(yushu,l-i-1,m+1);/处理余位数voidmain()(inti,m,n,N,l;coutN;cout=10;i+)n/=10;/求出N的位数n-1l=i;sum(N,l,1);for(i=0;i10;i+)cout”数字i出现了:”si”次n;程序调试中的问题调试过程,页码出现报错。实验结果continue次次次次次次次次次次to192222

5、2111y-现现现现现现现现现现叫TT1-T1-TT1-T1-TTT1/T1-r出出出出出出出出出出a0123456789SWXXXXXXX子eS次翳搽次次次次次to5111165555y7=T=7=7=T=7=7=7=T=T=ke现现现现现现现现现现叫出出出出出出出出出出a0123456789SUmes数数数数数数数魏数数pr次次次次次次次次次次C5665518555O2333387222t67777366661222221111UJT=T:=了7:T=了7:T=了kE现现现现现现现现现现叫-41T-41

6、T-41T-41T-41T-41T-41T-41T-41T-41Tr出山出出出出出出出出LJ-Ia31234S67S9S字宰宰宰宰幸宰宰幸-于渺数数数教数数数数数数pr算法设计与分析实验报告二实验名称分治法实现归并排序算法评分实验日期2014年11月26日指导教师姓名专业班级学号实验要求了解用分治法求解的问题:当要求解一个输入规模为n,且n的取值相当大的问题时,如果问题可以分成k个不同子集合,得到k个不同的可独立求解的子问题,其中1kWn,而且子问题与原问题性质相同,原问题的解可由这些子问题的解合并得出。那末,对于这类问题分治法是十分有效的。掌

8、。程序算法归并排序算法procedureMERGESORT(low,high)/A(low;high)是一个全程数组,它含有high-low+130个待排序的元素/integerlow,high;iflowmidthenforkjtohighdo/处理剩余的元素/B(i)A(k);ii+1repeatelseforkhtomiddoB(i)A(k);ii+1repeatendif将已归并的集合复制到AendMERGE快速排序算法QuickSort(p,q)/将数组A1:n中的元素Ap,Ap+1,Aq按不降次序排列,并假定An+1是一个确定

9、的、且大于A1:n中所有的数。/intp,q;globaln,A1:n;ifpqthenj=Partition(p,q+1);/划分后j成为划分元素的位置QuickSort(p,j-1);QuickSort(j+1,q);endifendQuicksortprocedurePARTITION(m,p)/退出过程时,p带着划分元素所在的下标位置。/integerm,p,i;globalA(m:p-1)vA(m);im/A(m)是划分元素/looploopii+1untilA(i)3vrepeat/i由左向右移/looppp-1untilA(p)Wv

10、repeat/p由右向左移/ifipthencallINTERCHANGE(A(i),A(p)/A(i)和A(p)换位/elseexitendifrepeatA(m)A(p);A(p)v/划分元素在位置p/EndPARTITION程序代码归并排序#include#include#include#include#defineM11typedefintKeyType;typedefintElemType;structrecKeyTypekey;ElemTypedata;;typedefrecsqlistM;classguibingpublic:guib

11、ing(sqlistb)for(inti=0;iM;i+)ri=bi;voidoutput(sqlistr,intn)for(inti=0;in;i+)coutsetw(4)ri.key;coutendl;voidxuanze(sqlistb,intm,intn)inti,j,k;for(i=m;in-1;i+)k=i;for(j=i;jbj.key)k=j;if(k!=i)rectemp=bk;bk=bi;bi=temp;voidmerge(intl,intm,inth,sqlistr2)xuanze(r,l,m);xuanze(r,m,

12、h);output(r,M);inti,j,k;k=i=l;for(j=m;im&jh;k+)if(ri.key=rj.key)r2k=ri;TOCo1-5hzi+;elser2k=rj;j+;output(r2,M);while(jh)r2k=rj;j+;k+;while(i=m)r2k=ri;i+;k+;output(r2,M);private:sqlistr;voidmain()coutguibingfa1运行结果:n”;sqlista,b;inti,j=0,k=M/2,n=M;srand(time(0);for(i=0;iM;i+)ai.key=rand()

13、%80;bi.key=0;guibinggx(a);cout排序前数组:n;gx.output(a,M);cout数组排序过程演示:n;gx.merge(j,k,n,b);cout排序后数组:n;gx.output(b,M);cin.get();快速排序#include#include#include#include#defineMAXI10typedefintKeyType;typedefintElemType;structrecKeyTypekey;ElemTypedata;;typedefrecsqlistMAXI;classkuaisupublic:kua

14、isu(sqlista,intm):n(m)for(inti=0;in;i+)bi=ai;voidquicksort(ints,intt)inti;if(st)i=part(s,t);quicksort(s,i-1);quicksort(i+1,t);elsereturn;intpart(ints,intt)inti,j;recp;i=s;j=t;p=bs;while(ij)while(i=p.key)j;bi=bj;while(ij&bi.key=p.key)i+;bj=bi;bi=p;output();returni;voidoutput()f

15、or(inti=0;in;i+)coutsetw(4)bi.key;coutendl;private:sqlistb;intn;voidmain()coutkuaisu1.cpp运行结果:n”;sqlista1;inti,n=MAXI,low=0,high=9;srand(time(0);for(i=0;in;i+)a1i.key=rand()%80;kuaisupx(a1,n);cout数组排序过程演示:n;px.quicksort(low,high);cout排序后数组:n;px.output();cin.get();程序调试中的问题调试过程中,在排序方面有问题。实验结

16、果1.归并排序2.快速排序c:v*F:算法实验气分治法Debugkuaisufal.ezeIkuaisul.cppTn:散组排序过程演示二39222241637764747556222239416377647475562222394163776474755622223941566364747577222239415663647475772222394156636474757722223941566364747577腓序后数组二22223941566364747577算法设计与分析实验报告三实验名称动态规划算法实现多段图的最短路径问题评分实验日期2014年11月26日指导教

17、师姓名专业班级学号实验要求理解最优子结构的问题有一类问题的活动过程可以分成若干个阶段,而且在任一阶段后的行为依赖于该阶段的状态,与该阶段之前的过程如何达到这种状态的方式无关。最优子结构性质:原问题的最优解包含了其子问题的最优解。子问题重叠性质:每次产生的子问题并不总是新问题,有些子问题被反复计算多次。问题的最优子结构性质和子问题重叠性质是采用动态规划算法的两个基本要素。理解分段决策Bellman方程。每一点最优都是上一点最优加上这段长度。即当前最优只与上一步有关。VUS=0,u=minu+w.j详ji可Us初始值,u.第j段的最优值。一般方法1)找出最优解的性质,并刻画其

19、1by-1do/计算COST(j)/设r是一个这样的结点,(j,r)E且使c(j,r)+COST(r)取最小值COST(j)-c(j,r)+COST(r);D(j)-r;Repeat/向前对j-1进行决策/P(1)-1;P(k)-n;forj-2tok-1do/找路径上的第j个节点/P(j)-D(P(j-1);repeat;endFGRAPH程序代码#include#include#include#include#defineMAX100#definen12/*顶点数*/#definek5/*

20、段数*/intcnn;voidinit(intcost)/初始化图inti,j;for(i=0;i13;i+)for(j=0;j13;j+)cij=MAX;c12=9;c13=7;c14=3;c15=2;c26=4;c27=2;c28=1;c36=2;c37=7;c48=11;c57=11;c58=8;c69=6;c610=5;c79=4;c710=3;c810=5;c811=6;c912=4;c1012=2;c1112=5;voidfgraph(intcost,intpath,intd)/使用向前递推算法求多段图的最短路径intr

21、,j,temp,min;for(j=0;j=1;j-)temp=0;min=cjtemp+costtemp;/初始化最小值for(r=0;r=n;r+)if(cjr!=MAX)if(cjr+costr)min)/找到最小的rmin=cjr+costr;temp=r;costj=cjtemp+costtemp;dj=temp;path1=1;pathk=n;for(j=2;jk;j+)pathj=dpathj-1;voidbgraph(intbcost,intpath1,intd)/使用向后递推算法求多段图的最短路径intr,j,temp,min;for(j=0;j=n;

22、j+)bcostj=0;for(j=2;j=n;j+)temp=12;/初始化最小值/找到最小的rmin=ctempj+bcosttemp;for(r=0;r=n;r+)if(crj!=MAX)if(crj+bcostr)=2;i-)path1i=dpath1i+1;voidmain()intcur=-1;intcost13,d12,bcost13;intpathk;intpath1k;coutttt动态规划解多段图问题endl;coutnn;init(cost);fgraph(cost,path,d);cout输出使用向前递推算法后的最短路径:nn;for(inti=1

23、;i=5;i+)coutpathi;coutn;coutendl最短路径为长度:cost1endl;coutn;coutn输出使用向后递推算法后的最短路径:nn;bgraph(bcost,path1,d);for(i=1;i=5;i+)coutpath1i;coutn;coutendl最短路径为长度:bcost12endl;coutn;程序调试中的问题动态规划的思想很容易理解,但当用程序代码实现起来的时候又觉得有点困难,经过我反复的调试操作,发现对于邻接表的程序表达不是很好。实验结果算法设计与分析实验报告四实验名称贪心算法实现背包问题评分实验日期2014年11月26日

24、指导教师姓名专业班级学号实验要求优化问题有n个输入,而它的解就由这n个输入满足某些事先给定的约束条件的某个子集组成,而把满足约束条件的子集称为该问题的可行解。可行解一般来说是不唯一的。那些使目标函数取极值(极大或极小)的可行解,称为最优解。贪心法求优化问题算法思想:在贪心算法中采用逐步构造最优解的方法。在每个阶段,都作出一个看上去最优的决策(在一定的标准下)。决策一旦作出,就不可再更改。作出贪心决策的依据称为贪心准则(greedycriterion)。一般方法1)根据题意,选取一种量度标准。2)按这种量度标准对这n个输入排序3)依次选择输入量加入部分解中。如果当前这个输入量的加入,

THE END
1.2024/12/5日工作总结张黎健完成数据结构pta实验7-2 迪杰斯特拉方法实现最短路径 用迪杰斯特拉算法实现有向网的最短路径 输入格式: 第一行输入有向网的顶点和边数,第二行输入各顶点值,用空格间隔,第三行开始输入各条边的 两个点的及边上的权值,用空格间隔。最后一行输入要求路径的两个顶点。 输出https://www.cnblogs.com/zhanglijian/p/18614396
2.数值计算上机实验报告(精选8篇)通过进行多次得上机实验,我们结合课本上得内容以及老师对我们得指导,能够较为熟练地掌握Newton 迭代法、Jacobi 迭代法、Gauss-Seidel 迭代法、Newton 插值法、Lagrange 插值法与Gauss 求积公式等六种算法得原理与使用方法,并参考课本例题进行了 MATLAB 程序得编写。 https://www.360wenmi.com/f/filezv2ccwcs.html
3.计算机网络socket编程实验报告.doc该【计算机网络socket编程实验报告 】是由【春天资料屋】上传分享,文档一共【3】页,该文档可以免费在线阅读,需要了解更多关于【计算机网络socket编程实验报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打https://www.taodocs.com/p-882804818.html
4.算法设计与分析,王晓东,实验报告.doc免费在线预览全文 算法设计与分析,王晓东,实验报告 算法设计与分析,王晓东,实验报告 算法设计与分析王晓东 习题2-1 求下列函数的渐进表达式: 3n+10n; n/10+2n; 21+1/n; logn; 10 log3 。 解答:3n+10n=O(n), n/10+2=O(2), 21+1/n=O(1), logn=O(logn), 10log3=O(n). https://mip.book118.com/html/2017/0502/103864144.shtm
5.基于C语言程序设计谈在线虚拟实验用于MOOC教学作为计算机技术用于线上教育的一种新形式,在线虚拟仿真实验[2]丰富了MOOC课程的内容和形式,填补了实验在线的空缺,对于引导学生完全自主学习,推动线上教学的发展,助力翻转课堂具有重要意义。 1 C语言MOOC在线教学现状 C语言程序设计是一门重要的计算机基础课程,对https://mp.weixin.qq.com/s?__biz=MzA3NTMzMzMyNw==&mid=2649475747&idx=1&sn=71577e65426d0aef42c4714c92f220d1&chksm=86d3dc8a7e32d0042a7cce3d4c3492731cfdda57dea0886ca74f8f646a79d928799f7f10f80e&scene=27
6.设备管理实验报告spooling算法三、实验要求 1、设计一个实现SPOOLING技术的进程 设计一个SPOOLING输出进程和两个请求输出的用户进程及一个SPOOLING输出服务程序。 SPOOLING输出进程工作时,根据请求块记录的各进程要输出的信息,将其实际输出到打印机或显示器。这里,SPOOLING进程与请求输出的用户进程可并发运行。 https://www.coder100.com/index/index/content/id/1010712
7.作业调度算法实验报告卓智敏作业调度算法实验报告 实验名称:作业调度实验 一、实验目的 模拟作业调度算法,学习作业在操作系统中的调度过程,加深对作业管理的理解。特别是作业调度的概念、作业调度与进程调度的区别。培养学生程序设计的方法和技巧,提高学生编制清晰、合理、可读性好的系统程序的能力,加深对操作系统课程的理解,拓宽学生的知识领域,锻炼https://blog.sina.com.cn/s/blog_6fe35d3a0100qnb7.html
8.编程实训报告实践记录(2篇)为了提高自己的编程能力,我参加了本次编程实训课程。本次实训旨在通过实际操作,掌握编程的基本原理和方法,提高编程实践能力。 二、实训内容 本次实训主要包括以下内容: 1. 熟悉编程环境 2. 掌握基本语法和数据结构 3. 学习常用算法 4. 实践项目开发 三、实训过程 1. 熟悉编程环境 在实训开始前,我首先熟悉了编程https://wenku.baidu.com/view/d75b729a1a2e453610661ed9ad51f01dc3815765.html
9.AI八数码Astar算法问题实验报告AI 八数码A_star算法问题-实验报告 一 题目要求: 八数码问题的A星搜索算法实现 要求:设计估价函数,并采用c或python编程实现,以八数码为例演示A星算法的搜索过程,争取做到直观、清晰地演示算法,代码要适当加注释。 八数码难题:在3×3方格棋盘上,分别放置了标有数字1,2,3,4,5,6,7,8的八张牌,初始状态S0可https://blog.51cto.com/u_15942590/6010789
10.《计算机图形学》实验报告(精选5篇)《计算机图形学》实验报告 班级: 211923班 学号: 21190928 姓名: 林星宇 2022-2022学年第1学期 实验项目1 边标志算法的实现 实验性质 □演示性实验 ?验证性实验 □操作性实验 ?综合性实验 实验地点 计算机楼B212 机器编号 一、实现的功能 编写应用程序,采用鼠标输入顶点的方法确定待填充多边形(多边形最后一点https://www.wendangwuyou.com/meiwen/syw/129148.html
11.清华大学操作系统课程ucoreLab2物理内存管理实验报告下文中将对实现first-fit连续物理内存分配算法的实现过程进行简要说明:在ucore中采用面向对象编程的思想,将物理内存管理的内容抽象成若干个特定的函数,并且使用结构体pmm_manager来将这些函数的指针封装起来,使得具体使用到物理内存管理所提供的服务的时候,只需要调用已经初始化完成的pmm_manager的实例中的函数指针即可,这样https://www.jianshu.com/p/abbe81dfe016
12.太原理工大学AI实验报告太原理工大学人工智能实验报告资源对于宽度优先搜索算法基本过程,算法分析有一个清晰的思路,了解宽度优先搜索算法在实际生活中的应用。 B。1.加深对各种状态图搜索策略概念的理解; 2.熟悉和掌握 A*搜索的定义、估价函数和算法过程 3.理解和掌握 A*搜索过程,能够用选定的编程语言求解八数码问题,理解求解流程和搜索顺序; 4.通过实验掌握估价函数的https://download.csdn.net/download/HKlearner/12473204
13.页面置换算法(FIFO算法LRU算法LFU算法NRU算法)实验报告操作系统实验报告 一、实验名称 :页面置换算法 二、实验目的: 在实验过程中应用操作系统的理论知识。 三、实验内容: 采用C/C++编程模拟实现:FIFO算法、LRU算法、LFU算法、NRU算法四个页面置换算法。并设置自动数据生成程序,比较四个算法的缺页出现概率。 https://blog.nowcoder.net/n/d3d820cf7d4d4b7aba532865f287e8af
14.运算符和内置函数使用(Python程序设计实验报告)5. 程序出错时,按照提示信息来进行错误定位,修改错误后,再次运行。如果程序没有错误,但是运行结果不对时,检查算法是否正确。 五、实验结果 三角形面积 代码和运行结果如下: 韩信点兵 代码和运行结果如下: 数位上数字之和 代码和运行结果如下: 等比数列 https://cloud.tencent.com/developer/article/2399026