利用定义求解传递闭包的关系矩阵
题目描述
给定有限集合上二元关系的关系矩阵,利用传递闭包的定义式(不是warshall算法)求其传递闭包的关系矩阵。
源代码
#include<stdio.h>
#define N 100
int mult(int a[N][N],int b[N][N],int n,int c[N][N])
{int i,j,k;for(i=0;i<n;i++){for(j=0;j<n;j++){c[i][j]=0;}}//每次接收矩阵乘积前先初始化为0 for(i=0;i<n;i++) { for(j=0;j<n;j++) { for(k=0;k<n;k++) { c[i][j]+=a[i][k]*b[k][j]; } } }
}//定义实现矩阵乘法的函数
int main()
{int n,a[100][100]={0},i,j,k,b[100][100]={0},c[100][100]={0},d[100][100]={0};scanf("%d",&n);for(i=0;i<n;i++){for(j=0;j<n;j++){scanf("%d",&a[i][j]);b[i][j]=a[i][j];d[i][j]=a[i][j];}}//输入邻接矩阵,并用另一个矩阵暂时存储 for(i=0;i<n-1;i++){mult(a,b,n,c);for(j=0;j<n;j++){for(k=0;k<n;k++){b[j][k]=c[j][k];//用c来接收前两个矩阵相乘的结果,并将其储存在b中以实现求解高次矩阵 d[j][k]+=c[j][k];}}} for(i=0;i<n;i++){for(j=0;j<n;j++){if(i==j) d[i][j]=1;else if(i!=j&&d[i][j]>0){d[i][j]=1;}}}//将矩阵d转化为布尔矩阵 for(i=0;i<n;i++){for(j=0;j<n;j++){printf("%d ",d[i][j]);}printf("\n");}
}
利用定义求解传递闭包的关系矩阵相关推荐
- 利用python求解规划问题
规划问题分为两个大类:线性规划和非线性规划以及下面分支的小类,我们观看这个树状图来粗略的了解一下. 首先我们讲解最简单的线性规划模型,通常线性规划均属于凸规划,通常都是用python中的cvxpy进行 ...
- 利用遗传算法求解函数极值
1.利用遗传算法求解函数极值 例1 利用遗传算法求函数 f(x) = 11sin(6x) + 7cos(5x),x∈[- π,π]的最大值点. 解:在MATLAB中编制绘制函数曲线的代码,运行得到题中 ...
- python 物理学中的应用_利用python求解物理学中的双弹簧质能系统详解
前言 本文主要给大家介绍了关于利用python求解物理学中双弹簧质能系统的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 物理的模型如下: 在这个系统里有两个物体,它们的质 ...
- python代码物理_利用python求解物理学中的双弹簧质能系统详解
前言 本文主要给大家介绍了关于利用python求解物理学中双弹簧质能系统的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 物理的模型如下: 在这个系统里有两个物体,它们的质 ...
- 动态规划在求解传递闭包问题中的应用(JAVA)--Warshell算法
动态规划在求解传递闭包问题中的应用: 传递闭包:对于n个顶点有向图来说,如果第i个顶点到第j个顶点之间存在一条有效的有向路径(即长度大于0的路径),那么T(i, j) = 1,否则T(i, j) = ...
- 在matlab中,利用for循环来生成一个矩阵,并分别对该矩阵的行和列进行求和
在matlab中,利用for循环来生成一个矩阵,并分别对该矩阵的行和列进行求和 先创建一个新的脚本,并保存,在编辑器中进行编辑.具体如图,以5阶方阵为例: a=zeros(5,5): for i=(1 ...
- 四阶龙格库塔法的基本思想_利用龙格库塔法求解郎之万方程.doc
利用龙格库塔法求解郎之万方程.doc 利用龙格-库塔法求解朗之万方程1. 待解问题布朗颗粒是非常微小的宏观颗粒,其直径的典型大小为10-710-6m.颗粒不断受到液体介质分子的碰撞,在任一瞬间,一个颗 ...
- 【翻译】利用加速度求解位置的算法——三轴传感器
cposture 一个小白的技术成长之路 [翻译]利用加速度求解位置的算法--三轴传感器 http://www.cnblogs.com/cposture/p/4378922.html 摘要 ...
- 利用加速度求解位置的算法——三轴传感器
转载的一篇文章,跟自己做过的一个车载项目类似,也算是标记一下吧. ---------------------------------------分割线------------------------- ...
- matlab求解全微分函数,利用MATLAB求解微分方程的方法探索
引言 科学问题和工程问题经常需要求取微分方程的解,MATLAB 的强大数值运算和符号运算能力,能够方便地进行各种解析运算,是方便实用.功能强大的数学软件之一. 1线性微分方程求解 1.1线性常微分方程 ...
最新文章
- python基础课程_学习笔记13:标准库:有些收藏夹——sys
- Python输出py文件模拟代码高亮
- C/C++面试题精选
- java-第七章-数组-循环输出
- 详解Java反射机制
- python中@staticmethod_Python中的@staticmethod和@classmethod的区别
- java 格式化字符串_Java入门 - 语言基础 - 14.String类
- python脚本-fence栅栏密码
- win7美化_Windows桌面美化记(二)这可能是你看过最详细的美化教程
- 外行也看得懂!了解量子计算的奇迹
- 雅虎 (YAHOO)相册下载工具 Beta1 发布
- python pysynth随机生成中国风音乐旋律
- sql 连续两个月活跃的用户
- 云南大学计算机在职硕士,在职硕士
- 电视台的收视率是怎么计算的
- 一步一步开发Game服务器(二)登陆2
- 原始套接字编程——Teardrop
- 【嵌入式模块】FT232RL——一个带有ISP功能的USB转TTL模块
- windows xp下如何添加开机自启动的程序
- 抽象类能实例化吗?——口气很强硬——“不能”(详解)
热门文章
- 古代常见文学常识汇总
- 计算机30秒自动更换的桌面软件,无需任何软件即可在计算机上的多个桌面墙纸之间自动切换...
- Top Trending Libraries of 2021,PaddleOCR再开源8大前沿顶会论文模型
- 基于JAVA的即时通信软件
- PPT怎么修改母版背景
- 有关汉字编码、拼音输入法 大搜罗
- oracle数据库alter的用法,数据库中alter的用法
- 【优秀课设】JavaScript利用高德地图开放平台实现精准三点定位(通过距离半径,绘制多个circle)
- unit10-Cookie、Session
- JAVAWEB-NOTE03