51Nod-1137-矩阵乘法
来源:互联网 发布:配眼镜测得数据的意思 编辑:程序博客网 时间:2024/05/18 20:12
51Nod-1137-矩阵乘法
1137 矩阵乘法给出2个N * N的矩阵M1和M2,输出2个矩阵相乘后的结果。Input第1行:1个数N,表示矩阵的大小(2 <= N <= 100)第2 - N + 1行,每行N个数,对应M1的1行(0 <= M1[i] <= 1000)第N + 2 - 2N + 1行,每行N个数,对应M2的1行(0 <= M2[i] <= 1000)Output输出共N行,每行N个数,对应M1 * M2的结果的一行。Input示例21 00 10 11 0Output示例0 11 0
解题方法
对于矩阵,python可以设置一个矩阵类来对矩阵进行相关操作,用重载运算符号进行矩阵乘法。
当然,直接用numpy库里提供的矩阵算法更简单省事。
python的重载运算符可以看这一篇博客——Python中类的运算符重载
解题代码
class Mat: #初始化矩阵的大小 def __init__(self, n): self.n = n self.mat = [] #向矩阵输入值 def Cin(self): for _ in range(self.n): self.mat.append(list(map(int, input().split()))) #输出矩阵的值 def Cout(self): for i in self.mat: print(*i) #乘法运算符重载,other是另外的矩阵 def __mul__(self, other): ans = Mat(self.n) for i in range(self.n): tmp = [] for j in range(self.n): x = 0 for k in range(self.n): x += self.mat[i][k]*other.mat[k][j] tmp.append(x) ans.mat.append(tmp) return answhile True: try: N = int(input()) a = Mat(N) b = Mat(N) a.Cin() b.Cin() a = a*b a.Cout() except EOFError: break
阅读全文
0 0
- 51nod 1137 矩阵乘法
- 51nod 1137 矩阵乘法
- 51Nod 1137 矩阵乘法
- 【51Nod】1137 矩阵乘法
- 51nod--1137 矩阵乘法
- 51nod 1137 矩阵乘法
- 51Nod-1137-矩阵乘法
- 51Nod 1137 矩阵乘法
- 51Nod-1137 矩阵乘法
- 51Nod-1137-矩阵乘法
- 51nod 1137 矩阵乘法
- 51nod 1137矩阵乘法【矩阵】
- 51nod 1137 矩阵乘法(矩阵快速乘法)
- 51nod 1137 矩阵乘法(矩阵乘法)
- 51Nod-1137-矩阵乘法
- 51nod oj 1137 1242 <结构体内重载运算符求矩阵乘法>
- 51nod 1836 战忽局的手段 矩阵乘法
- 51nod 1582 n叉树 dp+矩阵乘法
- 字符串:各种奇葩内置--2017/9/3--2
- 下降子序列的个数等于最长上升子序列的长度
- 修饰符volatile和synchronized的区别联系
- bzoj 4995: [Usaco2017 Feb]Why Did the Cow Cross the Road
- 关于热更新的一些分享
- 51Nod-1137-矩阵乘法
- 662. Maximum Width of Binary Tree
- 在Linux里设置用户环境变量的方法
- Selenium TestNG Java环境搭建过程中所遇问题汇总
- 欢迎使用CSDN-markdown编辑器
- MyCat介绍与配置
- Java中栈的实现原理
- C#简单工厂模式
- 《Angular与primeNG结合》