O-矩阵相乘-Warshall算法详解
给出2个N * N的矩阵M1和M2,输出2个矩阵相乘后的结果。
Input第1行:1个数N,表示矩阵的大小(2 <= N <= 100)
第2 - N + 1行,每行N个数,对应M1的1行(0 <= M1ii <= 1000)
第N + 2 - 2N + 1行,每行N个数,对应M2的1行(0 <= M2ii <= 1000)Output输出共N行,每行N个数,对应M1 * M2的结果的一行。Sample Input
2
1 0
0 1
0 1
1 0
Sample Output
0 1
1 0
离散里面学到了Warshall算法
也不管简便不简便就直接用了
不过这个算法是用来算传递闭包的,稍微改造了下
列如:
0 0 1 0 0 1
1 0 0 1 0 1
0 1 0 0 1 1 相乘
则先检索第一个数组里的第一竖列 即arr1[i][1] i递增 看此位置是否是1
先假设arr【1】【1】为第一行,,第一列
此图中 i为2时arr1[2][1]为1,即(2,1),
根据传递性,在第二个数组中寻找( 1,x)位置为1的元素
即x=3 ,arr2[1][3]为1,(2,1)(1,3)则传递为(2,3)
于是将arr3空数组中位置为2,3的元素置1,然后再检索第二竖列
,以此类推
0 0 1 0 0 1
1 0 0 1 0 1
0 1 0 0 1 1
(3,2)->(2,1),(2,3)传递成(3,1)(3,3),将arr3[][]对应位置置1。。。。。
此代码将检索1改为检索是否为0
将arr3【】【】中传递的来的元素累加成传递前两个数的乘积
#include <iostream>
#include <cstdio>
int arr1 [1010][1010];
int arr2 [1010][1010];
int arr3 [1010][1010];int main() {int n,a;scanf("%d",&n);for(int i=1;i<=n;i++) //传值for(int x=1;x<=n;x++){scanf("%d",&a);arr1[i][x]=a;}for(int i=1;i<=n;i++)for(int x=1;x<=n;x++){scanf("%d",&a);arr2[i][x]=a;}for(int i=1;i<=n;i++) for(int x=1;x<=n;x++)//第x行,i列,先检索行{if(arr1[x][i]!=0)//找到不为0的数arr【x】【i】{for(int z=1;z<=n;z++) //寻找arr【i】【】{if(arr2[i][z]!=0) //找到arr【i】【z】{arr3[x][z]+=arr1[x][i]*arr2[i][z];//累加}}} }for(int i=1;i<=n;i++) //输出{for(int x=1;x<=n;x++){if(x!=n)printf("%d ",arr3[i][x]);elseprintf("%d",arr3[i][x]);}printf("\n");} return 0;}
O-矩阵相乘-Warshall算法详解相关推荐
- python数组对应元素相乘_python的几种矩阵相乘的公式详解
1. 同线性代数中矩阵乘法的定义: np.dot() np.dot(A, B):对于二维矩阵,计算真正意义上的矩阵乘积,同线性代数中矩阵乘法的定义.对于一维矩阵,计算两者的内积.见如下Python代码 ...
- python3两个三阶矩阵相乘公式_python的几种矩阵相乘的公式详解
1. 同线性代数中矩阵乘法的定义: np.dot() np.dot(A, B):对于二维矩阵,计算真正意义上的矩阵乘积,同线性代数中矩阵乘法的定义.对于一维矩阵,计算两者的内积.见如下Python代码 ...
- 数据结构与算法详解目录
数据结构与算法详解是一本以实例和实践为主的图书,主要是经典的数据结构与常见算法案例,来自历年考研.软考等考题,有算法思路和完整的代码,最后提供了C语言调试技术的方法. 后续配套微课视频. 第0章 基 ...
- SoftPool算法详解
Refining activation downsampling with SoftPool-论文链接-代码链接 目录 1.需求解读 2.SoftPool算法简介 3.SoftPool算法详解 3.1 ...
- 隐马尔可夫模型之Baum-Welch算法详解
隐马尔可夫模型之Baum-Welch算法详解 前言 在上篇博文中,我们学习了隐马尔可夫模型的概率计算问题和预测问题,但正当要准备理解学习问题时,发现学习问题中需要EM算法的相关知识,因此,上一周转而学 ...
- 推荐系统简介+算法详解+项目介绍
目录标题 推荐系统简介 1.推荐系统目的 2.推荐系统的应用 3.推荐系统的基本思想 4.推荐系统的数据分析 5.推荐系统的分类 6.推荐算法简介 6.1 基于人口统计学的推荐算法(基于用户数据) 6 ...
- PnP算法详解(超详细公式推导)
PnP算法详解 PnP概述 PnP数学模型 PnP求解方法 DLT直接线性变换法 EPnP EPnP的特点 步骤 理论推倒 1.控制点及齐次重心坐标系 2.控制点的选择 3.计算控制点在相机坐标系下的 ...
- Matlab人脸检测算法详解
这是一个Matlab人脸检测算法详解 前言 人脸检测结果 算法详解 源代码解析 所调用函数解析 bwlabel(BW,n) regionprops rectangle 总结 前言 目前主流的人脸检测与 ...
- 操作系统之银行家算法—详解流程及案例数据
操作系统之进程调度--优先权法和轮转法(附上样例讲解) 操作系统之银行家算法-详解流程及案例数据 操作系统之多线程编程-读者优先/写者优先详解 操作系统之存储管理--FIFO算法和LRU算法 操作系统 ...
最新文章
- (0046) iOS开发之View的frame和bounds之解惑
- 如何判断map为空_在Java中如何优雅地判空
- 十大场景带你玩转外国
- BAP存储属性的思想
- Apache日志Shell分析
- 小议如何跳出魔改网络结构的火坑
- 精度P,召回率R和F值
- AngularJS日期格式化
- UE4之设置打包程序分辨率
- linux 烧录树莓派镜像,Linux命令行烧录树莓派镜像至SD卡
- 大恒水星相机硬触发测试
- SM3算法 (python)
- matlab线性平面映射求通项_MATLAB数学建模必备算法--层次分析法AHP
- 电脑ATX电源接口定义详解
- 关于路由器和交换机的区别图解(总结)
- 乘大潮而崛起,浪潮云洲大有可为
- oracle dba_hist_sql,从dba_hist_sqlstat视图中查找过去时段最占用资源的会话
- Android 字体引入
- linux删除svn版本库
- element-UI 图标点击切换