离散数学:用python实现矩阵乘法与关系矩阵
目录
一、矩阵乘法
1.原理
2.代码实现
3.运行结果
二、关系矩阵
1.原理
2.代码实现
3.运行结果
一、矩阵乘法
1.原理
(自百度)
2.代码实现
L1, L2 = [], [] # L1表示第一个矩阵 L2表示第二个矩阵
L1_row, L12_cr, L2_col = map(int, input().split()) # 输入第一矩阵的行数、第一二矩阵的列行数、第二矩阵的列数for i in range(L1_row):nums = list(map(int, input().split()))L1.append(nums) # 依次输入每行的数字 把第一个矩阵形成二维列表 L1[0]表示该矩阵第一行的数字
for i in range(L12_cr):nums = list(map(int, input().split()))L2.append(nums) # 同理 把第二个矩阵形成二维列表
res = [] # 给结果建立一个空列表
for a in range(L1_row):res.append([]) # 使该列表形成二维列表for b in range(L2_col):lis4 = []lis3 = L1[a] # 通过循环依次获取第一个矩阵的每一行数字for c in range(L12_cr):lis4.append(L2[c][b]) # 依次获取第二个矩阵的每一列数字res_num = sum(map(lambda x, y: x*y, lis3, lis4)) # 矩阵乘法原理res[a].append(res_num) # 填入 res[0]表示结果矩阵的第一行数字
for j in res:for i in j:print(i, end=' ')print() # 输出
3.运行结果
二、关系矩阵
1.原理
输入均为1或0,与矩阵乘法原理相似,不同的是矩阵乘法中乘法换成逻辑乘,加法换成逻辑加。
2.代码实现
L1, L2 = [], [] # L1表示第一个矩阵 L2表示第二个矩阵
L1_row, L12_cr, L2_col = map(int, input().split()) # 输入第一矩阵的行数、第一二矩阵的列行数、第二矩阵的列数
for i in range(L1_row):nums = list(map(int, input().split()))L1.append(nums) # 依次输入每行的数字 把第一个矩阵形成二维列表 L1[0]表示该矩阵第一行的数字
for i in range(L12_cr):nums = list(map(int, input().split()))L2.append(nums) # 同理 把第二个矩阵形成二维列表
res = [] # 给结果建立一个空列表
for a in range(L1_row):res.append([]) # 使该列表形成二维列表for b in range(L2_col):lis4 = []lis3 = L1[a] # 通过循环依次获取第一个矩阵的每一行数字for c in range(L12_cr):lis4.append(L2[c][b]) # 依次获取第二个矩阵的每一列数字r = list(map(lambda x, y: x and y, lis3, lis4))for i in range(len(r)):if 1 in r:d = 1else:d = 0res[a].append(d) # 填入 res[0]表示结果矩阵的第一行数字
for j in res:for i in j:print(i, end=' ')print() # 输出
代码大致与矩阵乘法代码相同
3.运行结果
离散数学:用python实现矩阵乘法与关系矩阵相关推荐
- 4.9-4.10 矩阵乘法的性质 矩阵的幂运算 矩阵的转置及其性质
矩阵乘法的性质 矩阵的乘法不遵守交换律 ! 矩阵乘法遵守结合律.分配律 对于任意r行c列的矩阵A,存在c行x列的矩阵O,满足:A . Ocx = Orx 对于任意r行c列的矩阵A,存在x行r列的矩阵O ...
- MATLAB基础操作,矩阵乘法、数组矩阵索引、最大最小运算符、零矩阵/随机矩阵/单位矩阵的生成、log函数、Inf和NaN的含义,语句过长用连接符换行、逻辑运算符以及区别
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.矩阵相乘 二.矩阵生成 1.直接输入 2.单位矩阵 3.全零矩阵 2.全一矩阵 2.随机矩阵 三.矩阵操作 四.矩 ...
- poj 3233 矩阵乘法(分块矩阵)
POJ 3233 题解:Sn为所求矩阵, 则 这样, 此题就变成了求矩阵幂和矩阵乘法, 分块矩阵乘法和普通矩阵一样的. code: /* adrui's submission Language : C ...
- 高等代数 矩阵的运算(第4章)1 加法,数量乘法,矩阵乘法,一些特殊矩阵
将数域 K K K上所有 s × n s×n s×n矩阵组成的集合记为 M s × n ( K ) M_{s×n}(K) Ms×n(K);当 s = n s=n s=n,可简记为 M n ( K ) ...
- jittor自定义矩阵乘法(图解矩阵乘法)
# jittor实现矩阵乘法 def matmul(a,b):(n,m),k =a.shape,b.shape[
- MATLAB中的矩阵乘法与实际矩阵乘法的差异
今天在做算法实现时,想用将算法矩阵化,这样子可以并行运算,虽然更耗内存,但起码效率会更好.为了验证矩阵化过程是否正确,我将矩阵化后所得结果和原来的串行计算结果相减,看看两者的之差的范数是否等于0.但我 ...
- MATLAB矩阵乘法、MATLAB矩阵的转置、MATLAB串联矩阵
MATLAB矩阵乘法 MATLAB中如果有两个矩阵 A 和 B ,其中 A 是 m*n 矩阵,B 是 n*p 矩阵,那么他们相乘能够产生一个 m*p 的矩阵 C. MATLAB矩阵乘法只发生在矩阵 A ...
- c++实现矩阵乘法和分块矩阵乘法
矩阵A大小 : m * p,矩阵B大小 : p * m,结果矩阵C大小 : m * n,分块的大小为k * k. 废话少说,原理也不提,直接上代码 #include "iostream&qu ...
- 用c语言编程矩阵乘法,c语言矩阵相乘
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 程序清单 #include  int main(void) {    &a ...
- c语言两个3x3矩阵乘法,c语言矩阵相乘
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 程序清单 #include  int main(void) {    &a ...
最新文章
- x86的cpu处理int类型并不是处理char高效多少
- 转:UNITY,如何为你的游戏选择正确的网络类型
- 小森生活显示无可用服务器,《小森生活》无可用游戏服务器解决教程 无可用网关服务器怎么办...
- ddos工具linux,DDoS常用工具大全
- Bash shell 连接字符串
- nova7可以升级成鸿蒙20系统,华为nova7升级到EMUI11,8大功能提升,带来更新体验...
- 查找java最耗费CPU线程的命令
- CAPL基础篇-----CAPL中的定时器操作
- 安卓期末大作业——Android小说阅读器
- CN和CSK运动跟踪算法
- idea2020.3配置点击mapper中的方法跳转到对应得xml中
- 富文本编辑vue插件vue-quill-editor
- 第三章 区块链技术架构与发展趋势
- opencv亚像素边缘精度_opencv 亚像素 算法
- php面试题 优信二手车_分布式定时任务对比 - sharedCode的个人空间 - OSCHINA - 中文开源技术交流社区...
- Item 20: Prefer pass-by-reference-to-const to pass-by-value(Effective C++)
- Linux中使用iOStream头文件,在Linux中使用gcc链接iostream.h
- sql 查询 同一手机号的 姓名 相同 的所有学生的信息
- 2021年高教杯数学建模国赛C题生产企业原材料的订购与运输
- vue-05列表渲染自学视频教程