首页 离散数学实验报告

离散数学实验报告

举报
开通vip

离散数学实验报告离散数学实验报告 (实验ABC) 专业班级   学生姓名   学生学号   指导老师   完成时间       目录 第一章 实验概述    2 1.1 实验目的    2 1.2 实验内容    2 1.3 实验环境    2 第二章 实验原理和实现过程    3 2.1 实验原理    3 2.1.1建立图的邻接矩阵,判断图是否连通    3 2.1.2 计算任意两个结点间的距离    3 2.1.3对不连通的图输出其各个连通支    4 2.2 实验过程(算法描述) ...

离散数学实验报告
离散数学实验报告 (实验ABC) 专业班级   学生姓名   学生学号   指导老师   完成时间       目录 第一章 实验概述    2 1.1 实验目的    2 1.2 实验内容    2 1.3 实验环境    2 第二章 实验原理和实现过程    3 2.1 实验原理    3 2.1.1建立图的邻接矩阵,判断图是否连通    3 2.1.2 计算任意两个结点间的距离    3 2.1.3对不连通的图输出其各个连通支    4 2.2 实验过程(算法描述)    4 2.2.1 程序整体思路    4 2.2.2具体算法流程    4 第三章 实验数据及结果分析    6 3.1建立图的邻接矩阵并判断图是否连通的功能测试及结果分析    6 3.1.1输入无向图的边    6 3.1.2建立图的连接矩阵    7 3.2 其他功能的功能测试和结果分析    8 3.2.1计算节点间的距离    8 3.2.2判断图的连通性    8 3.2.3输出图的连通支    9 3.2.4退出系统    9 第四章 实验收获和 心得体会 决胜全面小康心得体会学党史心得下载党史学习心得下载军训心得免费下载党史学习心得下载     10 4.1 实验收获    10 4.2 心得体会    11 第五章 实验源程序清单    12 5.1 程序代码    12 第一章 实验概述 1.1 实验目的 理解图论的基本概念,图的矩阵表示,图的连通性,图的遍历,以及求图的连通支方法。 通过实验,帮助学生更好地掌握计算机科学技术常用的离散数学中的概念、性质和运算,培养逻辑思维;通过实验提高学生编写实验报告、 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf 实验结果的能力,提高理论联系实际的能力;使学生具备程序设计的思想,能够独立完成简单的算法设计和分析。 1.2 实验内容 以偶对的形式输入一个无向简单图的边,建立该图的邻接矩阵,判断图是否连通(A),并计算任意两个结点间的距离(B),对不连通的图输出其各个连通支(C)。 注意:题目类型分为A,B,C三类,其中A为基本题,完成A类题目可达到设计的基本要求,其他均为加分题,并按字母顺序分数增加越高。 基本要求如下:程序需具有基本的容错控制,在输入错误时有处理手段;程序界面友好,需要输入的地方有输入说明,说明输入的内容和格式要求等;实验原理和实现过程应该详细分析问题,给出解决思路,描述算法思想,不能用源程序代替算法;测试数据应全面,包括非法输入的处理结果等都应包含在内。 1.3 实验环境 C或C++语言编程环境实现。 第二章 实验原理和实现过程 2.1 实验原理 2.1.1建立图的邻接矩阵,判断图是否连通 根据图的矩阵表示法建立邻接矩阵A,并利用矩阵的乘法和加法求出可达矩阵,从而判断图的连通性。 连通图的定义:在一个无向图 G 中,若从顶点vi到顶点vj有路径相连(当然从vj到vi也一定有路径),则称vi和vj是连通的。如果 G 是有向图,那么连接vi和vj的路径中所有的边都必须同向。如果图中任意两点都是连通的,那么图被称作连通图。    判断连通图的实现:在图中,从任意点出发在剩余的点中,找到所有相邻点循环,直到没有点可以加入为止,如果有剩余的点就是不连通的,否则就是连通的。或者也可用WallShell算法,由图的邻接矩阵判断图是否连通。 2.1.2 计算任意两个结点间的距离 图中两点i,j间的距离通过检验Al中使得aij为1的最小的l值求出。 路径P中所含边的条数称为路径P的长度。在图G中,从结点Vi到Vj最短路径的长度叫从Vi到Vj的距离,记为d。 设图的邻接矩阵是A,则 所对应的aij的值表示,点Vi到点Vj距离为n的路径有aij条。 若aij(1),aij(2),…,aij(n-1),中至少有一个不为0,则可断定Vi与Vj可达,使aij(l)≠0的最小的l即为d(Vi,Vj)。 问题求解原理为: (1) 先构造初始邻接矩阵A=Vij,Vij为顶点Vi到顶点Vj的权。如果Vi和Vj之间不存在弧段或者是负向回路或者是i=j,则令Vij其值为∞。 (2) 再构造初始中间顶点矩阵。 (3) 然后开始迭代计算(迭代的次数等于顶点的个数1) (4)最后查找Vi到Vj的最短路径。 计算节点Vi与Vj之间的距离的方法为: 利用邻接矩阵相互间相乘后得到的矩阵来判断节点间的距离。如果c2[s][i][j]==0,则这两个节点的距离为无穷大。如果c2[s-2][i][j]==0,c2[s-1][i][j]==1时,则这两点间的距离为s。 2.1.3对不连通的图输出其各个连通支 图的连通支的求法则可采用图的遍历算法,图的遍历有深度优先和广度优先两种方法,其中深度优先算法又分为递归和非递归两种。 在无向图中,如果任何两点可达,则称图G是连通的,如果G的子图G’是连通的,没有包含G’的更大的子图G’’是连通的,则称G’是G的连通支。 当有判断出关系不是连通的之后,将需要求出分支模块 实现方法如下:先定义一个二维数组用来存放相应的分块,先选定一个点,并将它放在数组中,然后判断,如果后面的和他是联通的便将它也放在同一个数组中,否则将其存入其他的数组中,后面以此类推,在输出相应的数组,便可判断出连通分支。 2.2 实验过程(算法描述) 2.2.1 程序整体思路 本程序完成了实验所要求的全部功能,其基本思路是——“运用模块化的思想,将实现“求连通支”、“输入结点关系”、“输出邻接矩阵”、“显示两结点间的距离”、“求可达矩阵”和“图的遍历”的子函数分开编写,然后将它们以子函数的形式添加到主函数main的代码后面,在要使用相应的子函数时,进行子函数调用就可以实现相应的功能了。” 本程序的一大特色就是开发者灵活使用了C语言中的数组概念来进行开发,用数组来模拟矩阵的运算,通过相应的算法实现了全部的功能。 2.2.2具体算法流程 在main(){系统界面显示;用do…while循环语句和switch语句实现功能1,2,3……的选择,并调用相关的子程序;用start、goto start实现控制流的转移;} liantongzhi(){求连通支,此子函数通过一个for循环控制遍历每个结点,并调用函数DFS()求每个结点的连通支;} DFS(int a){通过实参与形参,将结点数据代入函数;定义顺序栈变量;通过for循环初始化;为a置已访问标志,已经访问了的元素为1;定义顺序栈的第一个元素;通过while循环实现结点遍历,栈不为空时执行循环;栈顶元素赋值;通过for循环寻找v的下个未访问的邻接点;通过if条件句,若x,i是边和节点i未被访问过,处理结点的访问,并进行访问标志,进栈等操作;通过if条件句,若v已访问到的出点,则将其退栈;} shuru(){输入结点关系;通过for循环先将矩阵所有元素赋值0;再通过另一for循环,根据输入结点的关系,将矩阵中相应的元素赋值,有关系则为1;} linjiejuzhen(){输出邻接矩阵;通过for循环,依次按格式输出邻接矩阵的元素;} julijuzhen(){根据A的n次方矩阵及其中元素,判断并显示两结点间的距离;调用子函数linjiejuzhen(),以确定并显示距离为1的两结点;通过for循环显示距离为1的结点对;再通过一系列的for循环,计算A的n次方矩阵并显示结果,根据其中的元素,判断并显示结点间的距离;详细算法请见附录相关部分的注释;} kedajuzhen(){求可达矩阵;通过一系列for循环,根据公式,计算可达矩阵;通过for循环,将矩阵中不为0的一切值赋为1以生成可达矩阵并显示;通过for循环和if条件句的组合,根据可达矩阵的元素特点,判断图的连通性,若可达矩阵矩阵中有0,则跳出循环,显示不可连接;根据判断结果显示内容,不可连通或可连通;} 第三章 实验数据及结果分析 3.1建立图的邻接矩阵并判断图是否连通的功能测试及结果分析 简单无向图的输入界面友好,有清楚的操作说明,方便用户进行使用。 这就是集合的输入界面。 3.1.1输入无向图的边 当“6,5”时 ,表示输入的是六个节点五条边的树。 程序会在屏幕上显示输入节点间关系的界面,输入的关系为“1,2;2,3;3,4;4,5;5,6” 3.1.2建立图的连接矩阵 程序返回主界面后,选择“2”,程序会显示建立的连接矩阵。 3.2 其他功能的功能测试和结果分析 3.2.1计算节点间的距离 当选择“3”时,程序便会输出各节点间的距离。 3.2.2判断图的连通性 当选择“4”时,程序会根据可达矩阵判断图的连通性。 3.2.3输出图的连通支 当选择“5”时,程序会输出个连通支。 3.2.4退出系统 当选择“6”时,程序会退出系统。 第四章 实验收获和心得体会
本文档为【离散数学实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_037433
暂无简介~
格式:doc
大小:39KB
软件:Word
页数:11
分类:工学
上传时间:2019-04-01
浏览量:17