文章目录
图是由节点和连接节点之间的边组成的,与连线的长度,节点的位置没有关系。一个图是一个三元组<V(G), E(G), F>,其中V是一个非空的节点集合,E是边集合,F是从边集合E到节点序偶(无序偶或有序偶)集合上的函数。若图中边总是两个节点的关联,则图可简记为G=<G, E>。树可以是空树但图不能是空图。图的结点集不能为空但边集可以为空。
**无向图:**若图中所有边都是无向边,则图是无向图;
**有向图:**若所有边都是有向边,则图是有向图;
**混合图:**若图中既有无向边又有无向边则图为混合图;
**多重图:**还有平行边的任何一个图称为多重图
**简单图:**不含平行边和环的图称为简单图
**平凡图:**仅由一个孤立节点构成的图为平凡图;
**零图:**仅由孤立节点组成的图为零图;
完全图:图中每一对节点之间都有边相连则称为完全图
补图:给定一个图G,由图中所有节点和所有能使G称为完全图的添加边组成的图称为G相当于完全图的补图,简称G的补图。
**子图:**G=<V,E>,G’=<V’, E’>,其中V’,E’分别是V,E的子集,则G’是G的子图
注意!图G’ = <V’, E’>是图G=<V,E>的子图,若另一子图G’‘=<V’‘, E’‘>使得E’‘=E-E’,且V’‘中仅包含E’‘的边所关联的结点。则称 G’'是子图G’的相对于图G的补图。
**生成子图:G的子图包含G的所有结点则该子图为G的生成子图
**同构图:**图G=<V,E>及G’=<V’,E’>,若存在一一对应关系g,使得v->v’,e=(vi, vj) -> e’ = (g(vi), g(vj)),则称G于G’同构记作G数学公式: $ \simeq $G’.
两个图同构的充要条件是两个图的结点和边分别存在一一对应,且保持关联关系
**孤立节点:**图中不与任何节点邻接的节点
**邻接节点:**两个节点之间有边相连则这两个节点称为邻接点
**邻接边:**连接同一节点的两条边称为邻接边
**环(回路):**邻接同一节点的一条边
**度:**节点连接的边数记为节点的度
**出度:**指出节点的边数量
**入度:**指向节点的边数量
**定理一、**节点度数总和等于边数的二倍
**定理二、**度数为奇数的节点必定是偶数个
**定理三、**所有节点入度和等于所有节点出度和
**定理四、**n个节点的无向完全图 边数为n(n-1)/2
给定图G=<V, E>,设v0, v1, …vn是图中的结点,e1, e2,…en是图中的边,ei是关联结点vi-1和vi的边,则交替序列v0e1v1e2…envn为连接v0到vn的路。
**路径长度:**路中边的数目记为路径长度
**回路:**路径初始结点和终结结点相同的路
**通路:**一条路中所有的结点都不相同则该路称为通路
**迹:**一条路中所有的边都不相同则该路称为迹
**圈:**回路中除了起始和终止结点相同其他都不同的路
无向图
**连通:**无向图中,两个结点之间存在一条路则称节点间连通
**连通图:**图G中只有一个连通分支
**点割集:**假设无向图G=<V,E>为无向图,点集V1是V的子集。若删除V1的所有结点后,所得子图不连通,但是删除V1的任何真子集后所得子图是连通图则成V1是G的一个点割集。
**割点:**若点割集只有一个结点,则该结点为割点
**点连通度:**为产生一个不连通图需要在原图(非完全图)中删除结点的最小数目
**边割集:**假设无向图G=<V,E>为无向图,点集E1是E的子集。若删除E1的所有边后,所得子图不连通,但是删除E1的任何真子集后所得子图是连通图则成E1是G的一个边割集。
**割边:**若边割集只有一个边,则该边为割边,也叫桥
**边连通度:**为产生一个不连通图需要在原图(非平凡图)中删除边的最小数目
有向图
**可达:**有向图中,结点u到结点v之间有一条路,称结点u到v可达
**距离:**有向图中可达的结点间最短的路径长度(无向图亦适用)
**直径:**图中节点对之间距离最大的长度
**单侧连通:**有向图中任何一对结点间至少有一个结点到另一个结点是可达的
**强连通:**任何一对结点之间相互可达,则图强连通
**弱连通:**有向图G去掉边的方向后得到的无向图是联通的则该图是弱连通
**强分图:**有向图中具有强连通性质的最大子图称为强分图
**弱分图:**有向图中具有弱连通性质的最大子图称为弱分图
**单侧分图:**有向图中具有单侧连通性质的最大子图称为单侧分图
**定理一、**在具有n个结点的图中,若vi到vj存在一条路,则vi到vj必存在一条长度不大于n-1的路
**定理二、**图是强连通则必是单侧连通;是单侧连通则必是弱连通。
**定理三、**一个有向图是强连通的,当且仅当图中有一个回路,它至少包含每个结点一次
**定理四、**有向图中,每个结点位于且只位于一个强分图中
图的邻接矩阵表示通过使用|V|*|V|大小的方阵表示,矩阵每个元素表示结点的邻接关系。

简单无向图的邻接矩阵是对称的。第i行值为1的元素数目等于结点i的出度,第j列值为1的元素数目是结点j的入度。
定理一、A为图的邻接矩阵,A^n中第i行第j列的元素等于结点i和结点j之间长度为n的路的数目
对于一个简单有向图G,假设图中节点已排序,则方阵P为图G的可达矩阵

可达矩阵表明图中任意两个结点之间是否存在一条路。可达矩阵的计算通过邻接矩阵A计算。

将B中不为零的元素替换为1,得到的矩阵就是可达矩阵。
给定图G,v1,v2,…vn和e1,e2,…eq分别为G中的点和边,则M为图的完全关联矩阵
无向图


有向图


完全关联矩阵中两行相加(相当于两个结点合并)
1)有向图中是两行分量的普通加法运算
2)无向图中是对应分量加法模2运算
对于具有n个节点的简单无向图,该图拉普拉斯矩阵L定义为


D为图的度矩阵,是一个n*n的对角矩阵,diag(v)是v的度




定理:
a. 拉普拉斯矩阵半正定
b. 拉普拉斯矩阵特征值非负
c. 最小非零特征值是图的代数连通度
d.特征值为0的数目是连通分量数目
e.对称归一化的拉普拉斯矩阵的特征值[0,2]
**欧拉路径:**无孤立结点图中,每个边恰好只被访问一次(有向图中欧拉路叫单向欧拉路)
**欧拉回路:**一条回路,图中每条边访问且只访问一次
**欧拉图:**具有欧拉回路的图称作欧拉图
**哈密尔顿路径:**每个结点恰好只被访问一次
**哈密尔顿回路:**一条回路,每个结点恰好只被访问一次
**哈密尔顿图:**具有哈密尔顿回路的图称作哈密尔顿图
**闭包:**图G有n个结点,若将图G中度数之和至少是n的非邻接结点连接起来得图G’,对图G’重复上述步骤,直到不再有这样得结点对存在为止后得到得图称为原图G的闭包
**定理一、**无向图G具有一条欧拉路,当且仅当G是连通的,且有零个或两个奇数度结点
**推论一、**无向图G具有一条欧拉回路,当且仅当G是连通的,且所有结点度数全为偶数
**定理二、**图G有汉密尔顿回路,则结点集V的每个非空子集S均有G-S的连通分支数小于等于|S|
**定理三、**图G具有n个结点的简单图,若图中每一对结点度数之和大于等于n-1,则在G中存在一条汉密尔顿路
**定理四、**图G具有n个结点的简单图,若图中每一对结点度数之和大于等于n,则在G中存在一条汉密尔顿回路
**定理五、**当且仅当一个简单图的闭包是汉密尔顿图时,该简单图是汉密尔顿图
**平面图:**图G是一个无向图,若把G的所有结点和边画在平面上,且使得任何两条边除了端点外没有其它交点,称该图是一个平面图
**面:**G是一连通平面图,图中边包围的区域内没有结点和边,该区域叫G的一个面
**边界:**包围面的边构成的回路叫该面的边界
**2度结点内同构:**若两个图同构或者通过反复插入或删除度为2的结点后同构,则称两个图在2度结点内同构
**定理一、**一个有限平面图,面的次数之和等于其边数的两倍
**定理二、**欧拉定理,一个连通的平面图,v个结点e条边和r个面,欧拉公式:v-e+r=2
**定理三、**G是一个有v个结点e条边的连通简单平面图,若v>=3,则e<=3v-6
对偶图:给定平面图G=<V, E>,它具有面F1, F2,…Fn,若图G=<V, E>满足一下条件则陈G是G的对偶图。
a. 图G任意一个面Fi,内部有且仅有一个结点vi属于V
b. 图G的面Fi, Fj公共边界ek,存在且仅存在一条边ek,使ek=(vi, vj),且ek与ek相交
c. 当且仅当ek只是一个面Fi的边界时,vi存在一个环e*k和ek相交。

**自对偶图:**图G的对偶图同构于G,则G是自对偶图
着色:给定一平面图,对每个结点着色使相邻结点颜色不同。着色用了n种颜色则图称为n色的。
韦尔奇。鲍威尔法对图着色:
a. 将图G种结点按照度数递增次序进行排列
b. 用第一种颜色对第一点着色,并按照排列次序,对前面着色不相邻的结点着相同颜色
c. 用第二种颜色对未着色点重复b操作,第三种颜色继续此法,直到所有结点都着上
**定理一、**对于n个结点的完全图Kn,着色数为n
**定理二、**一个至少具有三个结点的连通平面图,则G中必有一个结点u使得deg(u)<=5
**定理三、**任意平面图最多是5色的
**树:**连通无回路的无向图
**森林:**无回路的无向图,其每个连通分图是树
**树叶:**树种度为1的结点
**分支点:**树中度数大于1的结点
**生成树:**图的生成子图是棵树,则该树是图的生成树
**最小生成树:**图中所有生成树中树权(所有边权和)最小的生成树
**弦:**图G中不在生成树中的边称作弦
**补:**弦的集合
a) Kruskal算法(边)
对图中边按照权值升序排序
选取权值最小的边,判断加入该边后生成的树是否产生回路,若没有就加入,若有则舍弃
重复步骤2,直到所有点都加入
b)Prim算法(点)
定义一个顶点集合S和边集合E,初始都为空
选取任意顶点X加入S
选取权值最小的边(X,Y),X在S中Y不在S中,将Y并如S,边并入E
重复步骤3直到所有点都加入S
**定理一、**任一棵树至少有两片树叶
**定理二、**连通图至少有一棵生成树
**定理三、**一条回路和任何一棵生成树的补至少有一条公共边
**定理四、**一个边割集和任何生成树至少有一条公共边
**有向树:**当有向图不考虑边方向时是一棵树,该有向图称为有向树
**根树:**有向树种只有一个结点入度为0,其余结点入度为1。其中入度为0的结点叫根,出度为0的结点叫叶
**m叉树:**根树中每个结点出度小于等于m
**完全m叉树:**根树中每个结点出度恰好等于m或0
**正则m叉树:**所有树叶层次相同
**通路长度:**从树根到该结点的通路中的边数。分支点的通路长度称为内部通路长度,树叶的通路长度称为外部通路长度
**最优树:**同最小生成树
**定理一、**有完全m叉树,树叶数为t,分支点数为i,则(m-1)i = t-1
**定理二、**完全二叉树有n个分支点,且内部通路长度总和为I,外部通路长度总和为E则E=I+2n
图的邻接矩阵通过使用|V|*|V|大小的方阵表示,矩阵每个元素表示结点的邻接关系。


简单无向图的邻接矩阵是对称的。第i行值为1的元素数目等于结点i的出度,第j列值为1的元素数目是结点j的入度。对于带权图,则矩阵的元素表示边的权重。
图的邻接矩阵的空间复杂度巨大,通常是稀疏的。对于无向图可以采用压缩矩阵的方式存储但是对于有向图会存在大量空间浪费,因此人们设计了邻接表的方式存储。
邻接表方式主要由顺序存储和链表存储两种方式构成。图中所有结点采用顺序存储方式,对于每个结点对应一条边表(单链表),表示该结点邻接的所有结点,对于有向图而言,边表则是有向边指向的所有结点。

邻接表中有两个基本数据结构,顶点表结点和边表结点。顶点表结点主要存放节点的属性信息和指向第一个表边结点的指针信息。边表结点存放着边另一头结点的Id等信息(代表一条边)和指向下一个边表结点的指针。值得注意的是,同一个图,对应邻接表不一定唯一。因为根据构造顺序的不同,结果不同。
邻接表表示有向图时,每个结点对应的边表表示结点的出度信息,无法表示入度信息。可以采用逆邻接矩阵的方式表示出度信息但不能表示入度信息,因此,考虑将邻接表与逆邻接表结合同时表示有向图的出入度信息,得到十字链表的表示方式。

十字链表是邻接表的加强版,是在邻接表的基础上同时考虑出入度信息。十字链表同样包含两个数据结构即顶点表结点和边表结点。顶点表结点包含三个部分分别是结点的属性信息,出度域和入度域。出度域指向该结点的所有出边构成的边表,入度域指向以该结点为终点的所有边结点构成的边表。边结点上包含着该有向边的头尾所连的结点和同头同尾的指针域,这样,弧头相同的会连在同一链表上,弧尾相同的会连在同一链表上。十字链表中有多少结点,结点表就有多少项,有多少边,边表就有多少项。


邻接表表示无向图时会存在大量边信息的冗余,因为邻接表中每条边用两个结点表示的。为了降低冗余,邻接多重表用一个边结点表示边来降低冗余。具体结构如图,其中边结点存放着该边两端的结点标号,ilink指向下一条依附于顶点ivex的边;jlink指向下一条依附于顶点jvex的边。

1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,
Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功
SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手
ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我最近开始学习Ruby,这是我的第一门编程语言。我对语法感到满意,并且我已经完成了许多只教授相同基础知识的教程。我已经写了一些小程序(包括我自己的数组排序方法,在有人告诉我谷歌“冒泡排序”之前我认为它非常聪明),但我觉得我需要尝试更大更难的东西来理解更多关于Ruby.关于如何执行此操作的任何想法?
(本文是网络的宏观的概念铺垫)目录计算机网络背景网络发展认识"协议"网络协议初识协议分层OSI七层模型TCP/IP五层(或四层)模型报头以太网碰撞路由器IP地址和MAC地址IP地址与MAC地址总结IP地址MAC地址计算机网络背景网络发展 是最开始先有的计算机,计算机后来因为多项技术的水平升高,逐渐的计算机变的小型化、高效化。后来因为计算机其本身的计算能力比较的快速:独立模式:计算机之间相互独立。 如:有三个人,每个人做的不同的事物,但是是需要协作的完成。 而这三个人所做的事是需要进行协作的,然而刚开始因为每一台计算机之间都是互相独立的。所以前面的人处理完了就需要将数据
文章目录一、项目场景二、基本模块原理与调试方法分析——信源部分:三、信号处理部分和显示部分:四、基本的通信链路搭建:四、特殊模块:interpretedMATLABfunction:五、总结和坑点提醒一、项目场景 最近一个任务是使用simulink搭建一个MIMO串扰消除的链路,并用实际收到的数据进行测试,在搭建的过程中也遇到了不少的问题(当然这比vivado里面的debug好不知道多少倍)。准备趁着这个机会,先以一个很基本的通信链路对simulink基础和相关的debug方法进行总结。 在本篇中,主要记录simulink的基本原理和基本的SISO通信传输链路(QPSK方式),计划在下篇记
文章目录概念索引相关操作创建索引更新副本查看索引删除索引索引的打开与关闭收缩索引索引别名查询索引别名文档相关操作新建文档查询文档更新文档删除文档映射相关操作查询文档映射创建静态映射创建索引并添加映射概念es中有三个概念要清楚,分别为索引、映射和文档(不用死记硬背,大概有个印象就可以)索引可理解为MySQL数据库;映射可理解为MySQL的表结构;文档可理解为MySQL表中的每行数据静态映射和动态映射上面已经介绍了,映射可理解为MySQL的表结构,在MySQL中,向表中插入数据是需要先创建表结构的;但在es中不必这样,可以直接插入文档,es可以根据插入的文档(数据),动态的创建映射(表结构),这就
目录1关系运算符2运算符优先级3关系表达式的书写代码实例:下面是面试中可能遇到的问题:1关系运算符C++中有6个关系运算符,用于比较两个值的大小关系,它们分别是:运算符描述==等于!=不等于小于>大于小于等于>=大于等于这些运算符返回一个布尔值,即true或false。例如,当x等于y时,x==y的结果为true,否则结果为false。2运算符优先级在C++中,关系运算符的优先级高于赋值运算符,但低于算术运算符。以下是关系运算符的优先级,从高到低排列:运算符描述>,,>=,关系运算符==,!=相等性运算符&&逻辑与`如果在表达式中有多个运算符,则按照优先级顺序依次进行运算。3关系表达式的书写在
一.计算机组成原理 这本书利用组合逻辑、同步时序逻辑电路设计的相关知识,从逻辑门开始逐步构建运算器、存储器、数据通路和控制器,最终集成为完整的CU原型系统,使读者从设计者的角度理解计算机部件构成及运行的基本原理,掌握软硬件协同的概念。 全书共9章,主要内容包括计算机系统概述、数据信息的表示、运算方法与运算器、存储系统、指令系统、中央处理器、指令流水线、总线系统、输入输出系统。1.计算机系统概述1.1计算机发展历程 计算机是一种能够按照事先存储的程序,自动、高速、准确地对相关信息进行处理的电子设备。1946年2月,世界上第一台电子数字计算机ENIAC(ElectronicNum