矩阵乘法(超详细!!!)

时间:2024-02-19 14:18:03

矩阵是什么?

是一个数字阵列,一个二维数组,n行r列的阵列称为n*r矩阵。如果n==r则称为方阵。

2×3矩阵

5×5方阵

特殊的单位矩阵,除了对角线为1,其他位置为0的矩阵。类似乘法中的1.

3×3单位矩阵I=


 矩阵乘法

矩阵乘法中第一个矩阵的列要等于第二个矩阵的行

一个m∗n的的A矩阵,和一个n∗p的B矩阵相乘,将得到一个m∗p的矩阵C 

来水道炒鸡简单的习题——

矩阵 A×B(信息学奥赛一本通 1641)

【题目描述】

矩阵 A 规模为 n×m,矩阵 B 规模为 m×p,现需要你求 A×B。 矩阵相乘的定义:n×m 的矩阵与 m×p 的矩阵相乘变成 n×p 的矩阵,令 aik为矩阵 AA中的元素,bkj为矩阵 B中的元素,则相乘所得矩阵 C中的元素

【输入】

第一行两个数 n,m; 接下来 n 行 m 列描述一个矩阵 A; 接下来一行输入 p; 接下来 m 行 p 列描述一个矩阵 B。 【输出】 输出矩阵 AA 与矩阵 BB 相乘所得的矩阵 C。

【输入样例】

2 3

1 2 3

3 2 1

2

11

2 2

3 3

【输出样例】

14 14

10 10

 


 

矩阵乘法中方阵可以用快速幂加速递推

方阵C=An,因为矩阵满足结合律可以随意拆开乘再合并

用一道简单的模板题来加深对“矩阵乘法加速递推”的理解吧——

Fibonacci 第 n 项(信息学奥赛一本通 1642)

【题目描述】

大家都知道 Fibonacci 数列吧,f1=1,f2=1,f3=2,f4=3,…,fn=fn−1+fn−2 。 现在问题很简单,输入 n和 m,求 fn mod m。

【输入】

输入 n,m。

【输出】

输出 fn mod m。

【输入样例】

5 1000

【输出样例】

5

 

题意:fn=fn-1+fn-2

构造:fn-1=fn-1+0*fn-2

构造一维递推式和相同维数的方阵。