WarShall算法求矩阵传递闭包关系
离散知识
给了你一个矩阵,你如何求他的传递闭包呢?
//求出如下矩阵的传递闭包
1 0 1 0 0
1 1 1 0 0
0 0 0 0 1
1 0 0 1 0
0 0 0 0 0
利用WarShall算法求解过程如下:
从第一列元素,开始看,哪个为1,可以看出,<1,1>,<2,1>,<4,1>为1,则分别将第1、2、4行元素与第1行元素进行逻辑加,成为新的1、2、4行的元素。
1 0 1 0 0
1 1 1 0 0
0 0 0 0 1
1 0 1 1 0
0 0 0 0 0
然后看第二列,<2,2>为1,则将第2行与第2行各个元素进行逻辑加,成为新的第2行元素
1 0 1 0 0
1 1 1 0 0
0 0 0 0 1
1 0 1 1 0
0 0 0 0 0
看第三列元素,<1,3>,<2,3>,<4,3>为1,则可得
1 0 1 0 1
1 1 1 0 1
0 0 0 0 1
1 0 1 1 1
0 0 0 0 0
看第四列,<4,4>为1,则可得
1 0 1 0 1
1 1 1 0 1
0 0 0 0 1
1 0 1 1 1
0 0 0 0 0
最后一列,<1,5>,<2,5>,< 3,5>,<4,5>,最终可得
1 0 1 0 1
1 1 1 0 1
0 0 0 0 1
1 0 1 1 1
0 0 0 0 0
代码实现
for(int i=1;i<=5;i++)for(int j=1;j<=5;j++)cin>>a[i][j];for(int i=1;i<=5;i++)for(int j=1;j<=5;j++){if(a[j][i]==1)for(int k=1;k<=5;k++)a[j][k]=(a[j][k]||a[i][k]);}for(int i=1;i<=5;i++){for(int j=1;j<=5;j++)cout<<a[i][j]<<" ";cout<<endl;}
WarShall算法求矩阵传递闭包关系相关推荐
- C语言用warshall算法求传递闭包transitive closure(附完整源码)
用warshall算法求传递闭包transitive closure warshall算法求传递闭包完整源码 warshall算法求传递闭包完整源码 #include <stdbool.h> ...
- C++floyd warshall算法求最短路径(附完整源码)
C++floyd warshall算法求最短路径 floyd warshall算法求最短路径的完整源码(定义,实现,main函数测试) floyd warshall算法求最短路径的完整源码(定义,实现 ...
- WarShall算法求传递闭包(可达矩阵)
最近在复习离散数学,顺便记录记录自己对warshall算法的理解. 1.传递闭包(可达矩阵) 传递闭包是有向图的一个重要性质,它指的是在有向图中从任意一个节点出发,可以到达的所有节点的集合.在某些应用 ...
- Warshall算法求有向图的传递闭包
1定义是这样给出的,传递闭包:对于任何关系 R,R 的传递闭包总是存在的.传递关系的任何家族的交集也是传递的.进一步的,至少存在一个包含 R 的传递关系,也就是平凡的: X × X.R 传递闭包给出自 ...
- 雅可比算法求矩阵特征值C语言源代码,雅可比(Jacobi)计算特征值和特征向量
雅可比迭代法法 在图形图像中不少地方用到求矩阵的特征值和特征向量,好比主成分分析.OBB包围盒等.编程时通常都是用数值分析的方法来计算,这里介绍一下雅可比迭代法求解特征值和特征向量.雅可比迭代法的原理 ...
- warshall算法求传递闭包c++_【建模小课堂】图论算法
图论算法 图论算法在计算机科学中扮演着很重要的角色,它提供了对很多问题都有效的一种简单而系统的建模方式.很多问题都可以转化为图论问题,然后用图论的基本算法加以解决.这类问题算法主要包括Dijkstra ...
- 图论 Warshall 和Floyd 矩阵传递闭包
首先我们先说下图论,一般图存储可以使用邻接矩阵,或邻接表,一般使用邻接矩阵在稠密图比较省空间. 我们来说下有向图,一般的有向图也是图,图可以分为稠密图,稀疏图,那么从意思上,稠密图就是点的边比较多,稀 ...
- python求雅可比矩阵_雅可比算法求矩阵的特征值和特征向量
目的 求一个实对称矩阵的所有特征值和特征向量. 前置知识 对于一个实对称矩阵\(A\),必存在对角阵\(D\)和正交阵\(U\)满足$$D=U^TAU$$\(D\)的对角线元素为\(A\)的特征值,\ ...
- 基于Warshall算法的连通图及欧拉图判定方法
1736年欧拉解决了哥尼斯堡七桥问题.他在这一具体问题的基础上进一步研究,最终找到了一个简便的原则可以鉴别一个图(多重图)能否一笔画成. 本文中,笔者使用布尔矩阵来存储一个无向图,并结合集合论中&qu ...
最新文章
- shell命令之---LVM文件系统
- 第10课:优化神经网络——如何防止过拟合
- Swoole的全双工、半双工和单工
- rw data 、ro data 和 code详解
- 我是如何自学 Python 的,分享一下经验
- Java笔记-Spring Boot Webservice中对指定namespace及localpart进行拦截
- 重要!VALSE 2021确认参会及第二次【预注册】事宜的通知
- 进程信号(信号、信号的注册与注销、信号的处理方式)
- escape()、encodeURI()、encodeURIComponent()区别
- tinymce 编辑器 上传图片
- 百度媒体云播放器cyberplayer支持M3U8格式的HTML5播放器
- IB和A-Level哪个的含金量高?
- SCI论文撰写——Conclusion
- 物联网基础知识:IMSI号介绍与解析
- 达梦数据库安全管理与体系
- Intellij IDEA导入外部项目javax.servlet.http不存在
- 2015自然基金一审结果:项目申请的共性问题。
- 关于软件延时指定us(1T和12T)
- c++用Beep发出声音
- 离散数学-<集合论与图论>思维导图
热门文章
- 天津农学院2022年高职升本科拟招生专业的通知
- Relative Panel用法
- 水下摄影分层psd素材水下摄影分层psd素材图片素材
- aws dynamodb 使用awsapi和PartiQL掌握dynamodb的CRUD操作
- 快速理解 .bss、.data和.rodata
- 女大学生创业卖粽子,日营业额1500元
- 配置wifi为AP模式 -- 接入点hostapd基本配置
- 数控机床位置精度及标准(论文 CAD图纸 开题报告 任务书……)
- java语言中定义的字节输出流_Java语言中的输入输出流包括字节流、字符流、文件流、对象流以及线程之间通信的管道流,【 】包中的类...
- netlink: 返回消息的处理;NLM_F_DUMP_INTR;NLMSG_ERROR