数据结构 C6 图
文章目录
- 6.1图的基本概念
- 6.2图的存储及其基本操作
- 6.2.1邻接矩阵法
- 6.2.2邻接表法
- 6.2.3十字链表
- 6.2.4邻接多重表
- 6.2.5图的基本操作
- 6.3图的遍历
- 6.3.1广度优先搜索
- 6.3.2深度优先算法
- 与树的深度优先遍历之间的联系&& 算法实现
- 复杂度分析
- 深度优先生成树
- 图的遍历和图的连通性
- 6.4图的应用
- 6.4.1最小生成树
- 最小生成树的概念
- Prim算法
- Kruskal算法
- 6.4.2最短路径
- 单源最短路径-DFS算法解决单源问题
- 单源最短路径-Dijkstra算法
- 各顶点之间的最短路径- Floyd算法
- 总结三种算法
- 6.4.3有向无环图
- 描述表达式(有向无环图的第一个应用)
- 6.4.4 拓扑排序(有向无环图的第二个应用)
- AOV网
- 拓扑排序实现
- 逆拓扑排序
- 用DFS算法实现(逆)拓扑排序
- 6.4.5关键路径
6.1图的基本概念
6.2图的存储及其基本操作
6.2.1邻接矩阵法
邻接矩阵法:
图的存储结构 有向图 无向图
对于图,它分为顶点还有边;边就是两个顶点的邻接关系,所以说要把图这个东西储存的话,就一定要分别储存点还有边。
图一般意义分为有向图还有无向图;对于前者后者顶点存储方式相同;但是对于后者存储方式是不同的;
那么我们怎么储存呢;
对于点来说,他就是一个整形数据啥的,用一个一维数组就可以了;对于边来说用二维数组了。如下图1。左边有向 右边无向;
看一个有向图的存储方法:
最后的存储结构:
看一个无向图的存储矩阵:错了(第一列最后一个元素是1)
最后转化为:
网呢 储存结构
我们之前说了,如果给每条边一个数值作为该边的权重:就变成了网;
那么我们该如何存储网呢?同样是利用矩阵和数组;如果该边不存在则存放无穷
举个例子:
网或者图在语言中是如何定义的?
#define MaxVertexNum 100
typedef char VertexType;
typedef int EdgeType;
typedef struct{VertexType Vex[MaxVertexNum];EdgeType Edge[MaxVertexNum][MaxVertexnum];
int vexnum,arcnum;
}MGraph;
性质
运算:
6.2.2邻接表法
当一个图相对比较稠密的时候,他适合采用上面一种邻接矩阵的方法 ,但是把,如果说这个图相对比较稀疏的话,那么采用以上算法就是相对比较浪费了,那用现在介绍的这种方法。邻接表法
采用顶点用顺序结构 而边用链式结构存储
比如 咱们看一个有向图的例子:
kankan是怎么储存的
再看一个无向图的例子:
储存结构:
#define MaxVertNum 100
typedef struct ArcNode{
int adjvex;
struct ArcNode *next;
//InfoType info;//表示权重
}ArcNode;
typedef struct VNode{VertexType data;ArcNode *first;
}VNode,AdjList[MaxVertexNum];
typedef struct{Adjust vetices;//邻接表
int vexnum,arcnum;
}ALGraph;
特点:
比较邻接矩阵和邻接表的异同:
6.2.3十字链表
对于连接表而言 找到出边是相对来说比较容易的 但是想找到入边来说 就是比较难的 他需要遍历整个表。
那么我们我们引申出一个新的结构
存储结构
#define MaxVertexNum 100;
typedef struct ArcNode{
int tailvex,headvex;
struct ArcNode *hlink,*tlink;
//infotype info;
}ArcNode;
typedef struct VNode{VertexType data;ArcNode *firststin,*firstout;
}VNode;
typedef struct{VNode xlist[MaxVertexNum];
int vexnum,arcnum;
}GLGraph;
6.2.4邻接多重表
对于无向图,我们之前使用了邻接表的形式:
你看一个对于这两个储存空间,如果删除它的时候,需要遍历,而且要删除两个,这样的话会是很麻烦的。于是引用了咱们今天学习的。
#define MaxVertNum 100;
typedef struct ArcNode{
int ivex ,jvex;
struct ArcNode *ilink,*jlink;
//infotype info;
//bool mark;
}ArcNode;
typedef struct VNode{ VertexType data;ArcNode *firstedge;
}VNode;
typedef struct{VNode adjmulist[MaxVertexnum];
int vexnum,arcnum;
}AMLGraph;
十字链表 邻接多重表
他们都是邻接表的优化;十字链表针对的是有向图,解决了有向图中无法快速找到某一顶点入边的这一弊端。 邻接多重表解决了无向图中每一个边要用两个边表结构来存放的弊端。
6.2.5图的基本操作
Adjacent(G,x,y) 判断图G是否存在边<x,y>或(x,y).
Neighbour(G,x) 列出图G中与结点x相邻的边
InsertVertex(G,x);在图G中插入顶点x
右边更好;
DeleteVertex(G,x)从图G中删除顶点x;
右边更好;
AddEdge(G,x,y);若无向边(x,y)或者<x,y>不存在,则向图中G中添加该边
左边更好
RemoveEdge(G,x,y)若无向边(x,y)或者有向边<x,y>存在,则在图G中删除该边;
FirstNeighbor(G,x);求图G中顶点X的第一点邻接点,若有则返回顶点号。若没有邻接点或图不存在x,则返回-1;
NextNeighbor(G,x,y) 假设图G中顶点y是顶点x的一个邻接点,返回除了y之外顶点x的下一个邻接点的顶点号,若y是x的最后一个邻接点,则返回-1;
Get_edge_value(G,x,y);获取图G中边(x,y)或<x,y>对应的权值v;
Set_edge_value(G,x,y); 设置G中边(x,y)或<x,y>
的权值为v;
6.3图的遍历
从图的某一点出发,按照某种算法,沿着图中的边,对图中所有的顶点进行一次访问(只访问一次)
6.3.1广度优先搜索
它和树的层次遍历很像,但是如果又按照层次遍历的算法来 ,一定会出现错误。如下
那么怎么改善呢
算法代码如下:
bool visited[MAX_TREE_SIZE];//定义了一个bool型的辅助标记数组
void BFSTraverse(Graph G){
for(int i=0;i<G.vexnum;++i)visited[i]=FALSE;
InitQueue(Q);
for(int i;i<G.vexnum;++i)
if(!visited[i])
BFS(G,i);
}
void BFS(Graph G,int v){
visit(v);visited[v]=TRUE;
Enqueue(Q,v);
while(!isEmpty(Q)){
Dequeue(Q,v);
for(w=FirstNeighbor(G,v);w>=0;w=NextNeighbor(G,v,w))
if(!visited[w]){visited[w];visited[w]=TRUE;
Enqueue(Q,w);
}
}
}
BTS算法的性能分析:
关于广度优先搜索解决最短路径问题:(不懂)
==广度优先生成树:=
6.3.2深度优先算法
与树的深度优先遍历之间的联系&& 算法实现
树的优先遍历
void preorder(treenode *R ){
if(R!=NULL){
visit(R);
while(R还有下一个子树T)
Preorder(T);
}
}
图的深度优先遍历:
bool visited[MAX_VERTEX_NUM];
void DFS(Graph G,int v){
visit(v);visited[v]=TRUE;
for(w=FirstNeighbor(G,v);w>=0;w=NextNeihbor(G,v,w))
if(!visited[w]){
DFS(G,w);
}
}
这辅助了一个函数调用栈:利用栈的栈进栈出来看目前正在执行的那个函数,调用了几层函数;
咱们看一看这是连通图用上面的算法就可以了,但是对于非连通图来说,无法遍历所有的结点;
优化:
复杂度分析
手动求一下
深度优先生成树
森林呢?
图的遍历和图的连通性
对于有向图具体问题具体分析
6.4图的应用
6.4.1最小生成树
最小生成树的概念
什么是生成树?
怎么做呢?
有没有更便宜的修路方案呢?
有的话就叫做
Prim算法
换一种连法
同一个有多种最小生成树,但是时数值都是一样的
换一个顶点开始:从农场出发
机器实现:
更新
Kruskal算法
机器实现:
6.4.2最短路径
单源最短路径-DFS算法解决单源问题
只有一个源头
void BFS_MIN_Distance(Graph G,int u){
for(i=0;i<G.vexnum;++i){d[i]=MAX;path[i]=-1;
}d[u]=0;visited[u]=TRUE;
Enqueue(Q,u);
while(!isEmpty(Q)){
Dequeue(Q,u);
for(w=FirstNeighbor(G,u);w>=0;w=NextNeighbor(G,u,w))
if(!vosoted[w]){d[w]=d[u]+1;path[w]=u;visited[w]=TRUE;
Enqueue(Q,w);
}
}
}
单源最短路径-Dijkstra算法
BFS算法只能解决无权图 或者权值都相同的图
机器实现以及时间复杂度
当为负权值的边的图 该算法不适用
各顶点之间的最短路径- Floyd算法
利用的是动态规划的思想
代码实现:
//....准备工作,根据图的信息初始化矩阵A和path(如上图)
for(int k=0;k<n;k++){
for(int i=0;i<n;i++){
for(int j=0;j<nj++){
if(A[i][j]>A[i][k]+A[k][j]){A[i][j]=A[i][k]+A[k][j];path[i][j]=k;
}
}
}
}
看一个难一点的例子:
最终得到:
如何寻找路径:
上面有说过D算法解决不了含有负数权的图,但是呢,Floyd 是可以的
总结三种算法
6.4.3有向无环图
有向无环图:若一个有向图中不存在环,则称为有向无环图,简称DAG图。
如下图
如下图右,有环路不能称为有向无环图。
描述表达式(有向无环图的第一个应用)
刚才讲解了什么?关于有向无环图如何描述表达式。他们之间的转化
首先是如何通过表达式转化为(有向无环)图。
方法:
step1:把各个操作数不重复的排成一排。
step2:标出各个运算符的生效顺序(先后顺序有点出入无所谓)
step3:按顺序加入运算符,注意分层。
step4:从底向上逐层检查同层的运算符时候可以合体。
举个例子:
把上图转化为有向无环图:(不会看-图章节视频12)
答案如下:
咱们看下一题:
本题按照这个顺序去实现上述操作方法。再按照下述顺序操作一遍。
得到的结果是什么————自己操作,不会看视频。
得到结果如下:
你会发现同一个表达式,按照不同的顺序排序,得到的结果是不唯一的。
所以得出结论:
同一个表达式,可以用不同的图去表示
6.4.4 拓扑排序(有向无环图的第二个应用)
AOV网
AOV网使用DAG图表示一个工程。注意A是表示一个活动。也就是顶点表示活动,有向边<Vi,Vj>表示活动Vi进行必须先于Vj进行。如果出现了环路就一定不是AOV网。看如下不是一个AOV网,去掉红色箭头就属于一个AOV网;
拓扑排序实现
定义:在图中,有一个有向无环图的顶点组成的序列。当且仅当满足下列条件时候称之为该图的一个拓扑排序。
1.每个顶点出现且出现一次。
2.若顶点A在排序中排在顶点B的前面,则在图中不存在从顶点B到顶点A的路径。
或者定义为:拓扑排序是对有向无环图的顶点的一种排序,它使得若存在一条从顶点A到顶点B的路径,则在排序中顶点B出现在顶点A的后面。每个AOV图都有一个或者多个拓扑排序序列。
以上是官方定义:也就是说拓扑排序就是排序而已。而且他是只能有向无环图,从前指向后的排序。排序结果可能有多种。
实现:
1.从AOV网中选择一个没有前驱(入度为0)的顶点输出。
2.从网中删除该顶点和所有以他为顶点的有向边。
重复1,2直到AOV为空为止,或者网中不存在无前驱的顶点(说明没有回路)。
那咱们看看对上述工程进行排序:下图是按照顺序从前往后的一种顺序(过程不会看视频图13)
如果图中存在回路怎么办,那么就拓扑排序不下去了,如下图
代码实现:
对于如下一个图,左边是图的结构,右边是图的储存结构。如何用代码实现如下的排序呢?
首先你需定义一个数组indegree[]表示当前各个顶点的度。定义一个输出后的排序数组print[]来记录拓扑排序。再用一个栈或者队列来按一定顺序保存和弹出相关活动获得顺序。
如下:
代码实现
bool topologicalsort(Graph G){//定义了一个bool型号的函数,看返回值返回1就是排序成功
initstack(S);
for(int i=0;i<G.vexnum;i++)
if(indegree[i]==0)
push(S,i);
push(S,i);
int count=0;//其实count表示print[]的数组序号
while(!IsEmpty(S)){
Pop(S,i);print[count++]=i;
for(p=G.vertices[i].firstarc;p=p->nextarc){//复杂在他是一个邻接表的储存结构没有弄懂。作用是i指向的顶点入度减一,并且将入读为01的顶点压入栈。v=p->adjvex;
if(!(--indegree[v]))
push(S,v);
}
}
if(count<G.vexnum)
return false;
else
return ture;
}
关于时间复杂度:上述使用了邻接表,几乎每一个点和边都需要遍历一遍。故邻接表的时间复杂度如下,而矩阵存储不一样。每个点都要遍历。
逆拓扑排序
选一个出度为0的顶点输出。其他和上述三步法一模一样,我就不重复了。
对于上面的工程用,逆排序结果也不是唯一的。有回路也不能排序成功。下面是其中一种顺序排法。
关于代码:
题目:用逆拓扑排序解决下图:左边是图,右边是储存结构
代码如下:
思考:
如果使用逆邻接表(每个顶点后面链接的是入边,如上图的逆邻接表如下)邻接矩阵对时间复杂度的影响如何?
用DFS算法实现(逆)拓扑排序
思考:
1.如果存在环路…
2.用DFS实现拓扑排序
6.4.5关键路径
1、AOV:有向图中,用顶点表示事件,用有向边表示活动之间开始的先后顺序,则称这种有向图为AOV(Activity On Vertex)网络;AOV网络可以反应任务完成的先后顺序(拓扑排序)。
2、AOE:在实际应用中,活动除了先后关系外,还需考虑时间上的约束
在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示活动,边上的权值表示活动的持续时间,称这样的有向图叫做边表示活动的网,简称AOE网
如图:
3、AOE网中只有一个入读为零的顶点称为始点(或源点),只有一个出度为零的顶点称为终点(或汇点)。
4、性质:
⑴ 只有在某顶点所代表的事件发生后,从该顶点出发的各活动才能开始;
⑵ 只有在进入某顶点的各活动都结束,该顶点所代表的事件才能发生。
5、完成一个工程所需要的最短时间是从源点到汇点的最长路径长度
关键路径:具有最长长度的路径,这里的路径长度是路径上的各权值之和
注意:关键路径不一定只有一条。
关键活动:关键路径上的活动称为关键活动。(需要满足 ee [i]=el [i] )
!! 关键路径的长度是整个工程所需要的最短工期,要缩短整个工期,必须要加快关键活动的进度
二、求关键活动所需要的参量
⑴ 事件的最早发生时间ve[k] - 从前往后,前驱结点到当前结点所需时间,取最大值。
ve[k]是指从始点开始到顶点vk的最大路径长度。这个长度决定了 所有从顶点vk发出的活动能够开工的最早时间。
⑵ 事件的最迟发生时间 vl[k] - 从后往前,后继结点的最迟发生时间-边权值,取最小值。
vl[k]是指在不推迟整个工期的前提下, 事件vk允许的最晚发生时间。
⑶ 活动的最早开始时间e [i]
若活动ai是由弧<vk , vj> 表示,则活动 ai的最早开始时间应等于事件vk的最早发生时间。
因此,有:e[i]=ve[k]
⑷ 活动的最晚开始时间 l [i]
活动ai的 最晚开始时间是指,在不推迟整个工期的前提下, ai 必须开始的最晚时间。若ai由弧<vk,vj>表示,则ai的最晚开始时间要保证事件 vj 的最迟发生时间不拖后。
一般等于l(i)=vl(j)-weight(vk,vj)
时间余量:当时间余量为0时候,说明这是一个关键活动。
求解路径的步骤:
举个例子:
上面是求解路径的的方法:那咱们看一道题目来操作一哈,如下
第一步:
第二步:
第三步:
第四步:
第五步:
==》找到关键路径
1 若关键活动的耗时增加,则整个工程的工期将加长;
2 缩短 关键活动的时间,可以缩短整个工程的工期
3.当缩短到一定程度时候,关键活动可能变成非关键活动
4 可能有多条关键路径,只提高一条关键路径的关键活动速度并不能缩短整个工程的工期,只有加快那些在所有关键路径上的关键活动才能达到缩短工期的目的
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 聊一聊Spring统一处理事务 并代码演示案例(整合Mybatis)
文章目录一、基本概念二、程序举例前期准备 一、基本概念 1、什么是事务 讲mysql的时候,提出了事务。事务是指一组sql 语句的集合,集合中有多条sql语句,可能是insert ,update,select ,delete,我们希望这些多个sql语句都能成功,或者都失败,这些sql 语句的执行是一致的,…...
2024/5/8 22:31:55 - 配置集群分发脚本
在/home/atguigu目录下创建bin目录,并在bin目录下创建xsync文件 [atguigu@hadoop101 hadoop] cd /home/atguigu [atguigu@hadoop101 ~] mkdir bin [atguigu@hadoop101 bin] touch xsync [atguigu@hadoop101 bin] vim xsync在该文件中编写如下代码 #!/bin/bash #1. 判断参数个…...
2024/5/7 10:51:22 - ssm下 的一些问题
安装项目的依赖 有些无法让maven 自动下载 要自己去手动安装到Maven本地仓库中 其次遇到 autorwired 注入 显示红色(包能够被扫描到的情况下) project struct 中 删除spring 即可...
2024/4/15 18:37:15 - 安卓终端实现串口通信
在项目用到串口通信或者USB通信,其实就是一个思路找到终端设备连接各个硬件设备的端口,不管是串口还是usb端口,如果不清楚哪个端口建议下载友善助手,通过这个工具可以发送指令集给硬件设备,也可以检测硬件设备返回的指令,知道端口后而我们终端是如何通信的呢?1.首先创建…...
2024/5/8 16:06:24 - FAT16和FAT32目录结构分析
一、前言FAT16和FAT32从原理上看是同一类技术,放在一起分析,有助于了解其细节差异;先回归一下FAT16、FAT32 分区的大致结构如下:从分区结构上看,FAT16和FAT32目录结构比较不一样的地方在于:FAT16 多了一个根目录区,根目录区由FDT目标表项组成,每一个分区表项占32字节;…...
2024/4/30 18:49:39 - 线程池相关问题
线程池相关问题 问题1:为什么要使用线程池,优势是什么? 线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最 大数量超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。 他的主要…...
2024/5/9 0:14:13 - Mybatis批量任务报错
今天进行单字段批量更新的时候,发生了报错。 有时候是传入的值确实,有时候是传入的数据类型不对。 但是,进行debug的时候,发现数据是没有问题的。 最终发现没有开数据库的批量配置。 尴尬!!! 在数据库后加 &allowMultiQueries=true完美解决!!!!...
2024/4/15 18:37:11 - SimpleDateFormat类的日期转化格式
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”)字符串"yyyy-MM-dd hh:mm:ss":yyyy : 代表年(不去区分大小写) 如: 2010"y" , "yyy" , "yyyy" 匹配的都是4位完整的年 如 : "2010"yy" 匹配…...
2024/4/29 14:17:56 - 跟着专注于计算机视觉的AndyJ的妈妈我学算法之每日一题leetcode105从前序与中序遍历序列构造二叉树
DFS. 题目: 105. 从前序与中序遍历序列构造二叉树 根据一棵树的前序遍历与中序遍历构造二叉树。注意: 你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树:3/ \9 20/ \15 7代码: class Sol…...
2024/4/23 0:47:39 - VRRP(虚拟路由器冗余协议)协议与基于HA技术的高可用DNS服务
VRRP(虚拟路由器冗余协议)协议与基于HA技术的高可用DNS服务一、VRRP协议1、VRRP基本概念VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)将可以承担网关功能的一组路由器加入到备份组中,形成一台虚拟路由器,这样主机的网关设置成虚拟网关,就能够实现冗余…...
2024/4/15 18:37:08 - webpack學習《01.nrm安裝》
首先安裝node環境 今天開始學習webpack,學習之前需要配置安裝環境。小白安裝node.js 大家可以點擊上面這個鏈接自己去看,超級小白安裝node。所講解的是用window環境中的安裝方式。 nrm是什麽? nrm是一個靜項資源的管理地址,就是我們在用npm安裝包的時候,它一般請求的是國外…...
2024/5/2 10:35:36 - CAS算法的认识和看法
ASC CAS的全称为Compare-And-Swap,它是一条CPU并发原语。 它的功能是判断内存某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的。 CAS并发原语体现在JAVA语言中就是sun.misc.Unsafe类中的各个方法。调用UnSafe类中的CAS方法,JVM会帮我们实现出CAS汇 编指令…...
2024/4/23 6:30:43 - springcloud——gateway的入门
gateway三大核心概念: 1、路由(Route):路由是构建网关的基本模块,它由ID,目标URI,一系列的断言和过滤器组成,如果断言为true则匹配该路由。 2、断言(Predicate):开发人员可以匹配Http请求中的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由。 3…...
2024/5/3 14:35:12 - autoLayout简述
版权声明:本文为延成原创文章,转载请标明出处autoresizing六根线的含义autolayout约束确定控件的位置和尺寸(x,y,w,h)参照所添加的约束是相对于谁来说的警告和错误stroyboard / xib的使用代码中的使用一个NSLayoutCanstraint对象就是一个约束 万能公式:obj1.property1 = (ob…...
2024/4/23 5:47:12 - Java 合并重叠时间段
欢迎大家提出更好的算法。。/*** 合并data数据中的重叠时段* @param data* [* {* "startTime":时间戳,* "endTime":时间戳* }* ]* @return void* @author lsy* @date 2020/8/3 14:00*/public List<M…...
2024/4/15 18:37:08 - 反编译小程序遇到 SyntaxError: Unexpected end of input
...
2024/4/23 9:03:59 - Qt系列文章之(十一)QPushbutton
上一篇文章介绍了如何基于QMainWindow开发界面项目文件,介绍了三个关键文件ui文件、cpp文件和h文件,这三个文件实现了将界面控件设计和底层算法开发的解耦,这也是面向对象数据封装的主要精髓思想。本文将基于上一篇文章中开发的界面来添加基本控件。 按钮控件QPushButton 按…...
2024/4/22 13:35:17 - 应用中心最佳实践之——使用应用组完成多集群一键部署
简介: 在现实中的应用交付实践中,常常需要将同一应用同时部署到多个集群中。应用中心支持将同一个数据源定义的应用,通过应用组的形式一键部署到多个集群中,实现统一管理。作者:指北背景在现实中的应用交付实践中,常常需要将同一应用同时部署到多个集群中。应用中心支持将…...
2024/4/15 18:37:06 - 文件上传优化2
package File02; import java.io.*; import java.net.Socket; //把本地文件上传到服务器的案例 public class Upload { public static void main(String[] args) throws IOException { //创建一个本地字节输入流对象 //创建一个本地字节输入流对象,构造方法中绑定要读取的数据…...
2024/4/15 18:37:07 - binlog数据恢复
不管你什么架构,一切都是为数据服务的,数据是一个企业最核心的价值。不过出现问题的话,数据一旦被删除,每过一秒,都将对企业造成巨大的损失。最近,还真的发生了一起删库跑路事件,微盟7*24小时紧急恢复数据,商家赔付1.5亿。一、binlog2sql用途数据快速回滚(闪回)主从切换…...
2024/4/15 18:37:02
最新文章
- 52页 | 2024大型语言模型行业图谱研究报告(免费下载)
【1】关注本公众号,转发当前文章到微信朋友圈 【2】私信发送 【2024大型语言模型行业图谱研究报告】 【3】获取本方案PDF下载链接,直接下载即可。 如需下载本方案PPT原格式,请加入微信扫描以下方案驿站知识星球,获取上万份PPT解…...
2024/5/9 3:40:33 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/7 10:36:02 - C++ //练习 11.14 扩展你在11.2.1节练习(第378页)中编写的孩子姓到名的map,添加一个pair的vector,保存孩子的名和生日。
C Primer(第5版) 练习 11.14 练习 11.14 扩展你在11.2.1节练习(第378页)中编写的孩子姓到名的map,添加一个pair的vector,保存孩子的名和生日。 环境:Linux Ubuntu(云服务器&#x…...
2024/5/5 8:38:52 - [C++/Linux] UDP编程
一. UDP函数 UDP(用户数据报协议,User Datagram Protocol)是一种无连接的网络协议,用于在互联网上交换数据。它允许应用程序发送数据报给另一端的应用程序,但不保证数据报能成功到达,也就是说,它…...
2024/5/8 14:47:50 - 416. 分割等和子集问题(动态规划)
题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义:dp[i][j]表示当背包容量为j,用前i个物品是否正好可以将背包填满ÿ…...
2024/5/8 19:32:33 - 【Java】ExcelWriter自适应宽度工具类(支持中文)
工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...
2024/5/7 22:31:36 - Spring cloud负载均衡@LoadBalanced LoadBalancerClient
LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon,直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件,我们讨论Spring负载均衡以Spring Cloud2020之后版本为主,学习Spring Cloud LoadBalance,暂不讨论Ribbon…...
2024/5/9 2:44:26 - TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案
一、背景需求分析 在工业产业园、化工园或生产制造园区中,周界防范意义重大,对园区的安全起到重要的作用。常规的安防方式是采用人员巡查,人力投入成本大而且效率低。周界一旦被破坏或入侵,会影响园区人员和资产安全,…...
2024/5/8 20:33:13 - VB.net WebBrowser网页元素抓取分析方法
在用WebBrowser编程实现网页操作自动化时,常要分析网页Html,例如网页在加载数据时,常会显示“系统处理中,请稍候..”,我们需要在数据加载完成后才能继续下一步操作,如何抓取这个信息的网页html元素变化&…...
2024/5/9 3:15:57 - 【Objective-C】Objective-C汇总
方法定义 参考:https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...
2024/5/7 16:57:02 - 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】
👨💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】🌏题目描述🌏输入格…...
2024/5/7 14:58:59 - 【ES6.0】- 扩展运算符(...)
【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数࿰…...
2024/5/8 20:58:56 - 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?
文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕,各大品牌纷纷晒出优异的成绩单,摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称,在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁,多个平台数据都表现出极度异常…...
2024/5/9 1:35:21 - Go语言常用命令详解(二)
文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令,这些命令可以帮助您在Go开发中进行编译、测试、运行和…...
2024/5/8 1:37:35 - 用欧拉路径判断图同构推出reverse合法性:1116T4
http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b,我们在 a i a_i ai 和 a i 1 a_{i1} ai1 之间连边, b b b 同理,则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然࿰…...
2024/5/7 16:05:05 - 【NGINX--1】基础知识
1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息,并安装一些有助于配置官方 NGINX 软件包仓库的软件包: apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...
2024/5/8 18:06:50 - Hive默认分割符、存储格式与数据压缩
目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限(ROW FORMAT)配置标准HQL为: ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...
2024/5/8 1:37:32 - 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法
文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中,传感器和控制器产生大量周…...
2024/5/9 1:42:21 - --max-old-space-size=8192报错
vue项目运行时,如果经常运行慢,崩溃停止服务,报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中,通过JavaScript使用内存时只能使用部分内存(64位系统&…...
2024/5/8 1:37:31 - 基于深度学习的恶意软件检测
恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞,例如可以被劫持的合法软件(例如浏览器或 Web 应用程序插件)中的错误。 恶意软件渗透可能会造成灾难性的后果,包括数据被盗、勒索或网…...
2024/5/8 1:37:31 - JS原型对象prototype
让我简单的为大家介绍一下原型对象prototype吧! 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象,所以我们也称为原型对象…...
2024/5/8 12:44:41 - C++中只能有一个实例的单例类
C中只能有一个实例的单例类 前面讨论的 President 类很不错,但存在一个缺陷:无法禁止通过实例化多个对象来创建多名总统: President One, Two, Three; 由于复制构造函数是私有的,其中每个对象都是不可复制的,但您的目…...
2024/5/8 9:51:44 - python django 小程序图书借阅源码
开发工具: PyCharm,mysql5.7,微信开发者工具 技术说明: python django html 小程序 功能介绍: 用户端: 登录注册(含授权登录) 首页显示搜索图书,轮播图࿰…...
2024/5/8 1:37:29 - 电子学会C/C++编程等级考试2022年03月(一级)真题解析
C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...
2024/5/7 17:09:45 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57