Warshall算法求传递闭包
目录
一、首先来看我自己的手工推导
二、代码实现,C语言代码。
三、总结
一、首先来看我自己的手工推导
自我感觉手工推导蛮有用的,推完一遍,大致理解了。代码也比较容易实现了。
二、代码实现,C语言代码。
为啥我这次用C呢,因为最近在学,哈哈哈。参考了一下别人的,自己写了一下。
#include<stdio.h>
#include<math.h>
#define N 4
int yuanjuzhen(int a[N][N])
{int i = 0,j = 0;for (i = 0;i < N;i++) {for (j = 0;j < N;j++){scanf("%d",&a[i][j]);if (a[i][j] != 0 && a[i][j] != 1)return 1; }}return 0;
}
int chuandibibao(int a[N][N])
{int i = 0,j = 0;for (i = 0;i < N;i++) {for (j = 0;j < N;j++) {printf("%d ",a[i][j]);}putchar('\n');}
}
int warshall(int a[][N])
{ //(1)i=1;//(2)对所有j如果a[j,i]=1,则对k=0,1,…,n-1,a[j,k]=a[j,k]∨a[i,k];//(3)i加1;//(4)如果i<n,则转到步骤2,否则停止int i = 0;int j = 0;int k = 0;for (i = 0;i < N;i++) { for (j = 0;j < N;j++) {if (a[j][i]) {for (k = 0;k < N;k++) {a[j][k] = a[j][k] | a[i][k];//逻辑加 ,还有离散老师讲的那个第i行甲第j行,送回第j行}} }}
}
int main()
{ int a[N][N] = {0};printf("please input a juzhen with %d * %d:\n",N,N);if (yuanjuzhen(a)){ printf("输入格式不对,只能是0或1!\n");return 1; //错误返回主函数,返回值为1; }warshall(a);chuandibibao(a);return 0;//正常返回主函数,返回值为0;
}
三、总结
还是要搞清楚算法,那样代码会比较好写,但是他其实也没有离开我们本来要算的方法。就是计算思维吧,还是。
Warshall算法求传递闭包相关推荐
- C语言用warshall算法求传递闭包transitive closure(附完整源码)
用warshall算法求传递闭包transitive closure warshall算法求传递闭包完整源码 warshall算法求传递闭包完整源码 #include <stdbool.h> ...
- WarShall算法求传递闭包(可达矩阵)
最近在复习离散数学,顺便记录记录自己对warshall算法的理解. 1.传递闭包(可达矩阵) 传递闭包是有向图的一个重要性质,它指的是在有向图中从任意一个节点出发,可以到达的所有节点的集合.在某些应用 ...
- warshall算法求传递闭包c++_【建模小课堂】图论算法
图论算法 图论算法在计算机科学中扮演着很重要的角色,它提供了对很多问题都有效的一种简单而系统的建模方式.很多问题都可以转化为图论问题,然后用图论的基本算法加以解决.这类问题算法主要包括Dijkstra ...
- C++floyd warshall算法求最短路径(附完整源码)
C++floyd warshall算法求最短路径 floyd warshall算法求最短路径的完整源码(定义,实现,main函数测试) floyd warshall算法求最短路径的完整源码(定义,实现 ...
- 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 ...
- Warshall算法求有向图的传递闭包
1定义是这样给出的,传递闭包:对于任何关系 R,R 的传递闭包总是存在的.传递关系的任何家族的交集也是传递的.进一步的,至少存在一个包含 R 的传递关系,也就是平凡的: X × X.R 传递闭包给出自 ...
- Warshall 算法(离散数学传递闭包)
Warshall 算法 算法思路: (1)先初始化一个二维数组 (2)利用循环输入N*N的矩阵 (3)进行矩阵的运算 M0的第0列的1和第0行进行逻辑加.比如[1,0]+[0,1]=[1,1]=1 M ...
- nyoj 211 (Floyd算法求传递闭包)
Cow Contest 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, ...
- 基于Warshall算法的连通图及欧拉图判定方法
1736年欧拉解决了哥尼斯堡七桥问题.他在这一具体问题的基础上进一步研究,最终找到了一个简便的原则可以鉴别一个图(多重图)能否一笔画成. 本文中,笔者使用布尔矩阵来存储一个无向图,并结合集合论中&qu ...
- 离散数学中Warshall算法简析
离散数学中Warshall算法简析 最近学了离散数学的图论,突然感觉离散数学的作用十分强大,相信学好离散数学中的算法,编程的魅力也不言而喻.闲话不多说,这篇博客中记录的是Warshall算法的简单解析 ...
最新文章
- (转)在Windows平台上安装Node.js及NPM模块管理
- TensorFlow高层次机器学习API (tf.contrib.learn)
- vs2010 调试窗口debugger UTF8 显示汉字 乱码
- 迁移.NET 1.0 应用到FX 2.0 –.NET评测网的工具箱
- 牛客网 在线编程 局部最小值位置
- 需求分析与建模最佳实践_社交媒体和主题建模:如何在实践中分析帖子
- Caffe + Ubuntu 15.04/16.04 + CUDA 7.5/8.0 在服务器上安装配置及卸载重新安装(已测试可执行)
- python 描述符类_python的黑魔法--描述符
- 安装不成功_win10+cuda10.1+cudnn+tensorflow1.15.0安装
- php远程下载头像,Laravel 项目中 远程把图片下载到本地
- FPGA IP核之FIFO
- error C4716 必须返回一个值 处理
- mysql2003错误如何解决_win7电脑提示数据错误循环冗余检查如何解决
- python-RFM模型
- TencentOS-Tiny之GCC
- java 二维卡尔曼滤波_卡尔曼滤波 – Kalman Filtering
- SAP UI5 Simple Form 属性 columnsL,columnsM,columnsXL 的属性深入剖析试读版
- 单片机七阶音符_单片机 演奏音符
- 霍尼韦尔摄像头ip地址修改_霍尼韦尔BA BNA设置
- java对台湾同胞身份证号码验证