矩阵快速幂模板+常用变式
矩阵乘法(矩阵乘矩阵) 在向量乘向量的运算中,是将每个元素与它对应的元素相乘,求所有乘积之和 那么矩阵乘矩阵是不是就是两个同型矩阵的对应元素相乘呢? 图样图森破 两个矩阵相乘的前提是前一个矩阵的列数等于后一个矩阵的行数 举个栗子,AAA为n∗kn*kn∗k矩阵,BBB为k∗mk*mk∗m矩阵,CCC为m∗nm*nm∗n矩阵,那么AAA可以与BBB相乘,BBB可以与CCC相乘,CCC可以与AAA相乘,其他均不成立 我们知道了什么情况下两个矩阵可以相乘,那么他们怎么相乘呢?不讲每个对应位置相乘还能怎么乘呢? 设AAA为n∗kn*kn∗k矩阵,BBB为k∗mk*mk∗m矩阵,那么它们的乘积CCC则为一个n∗mn*mn∗m矩阵 Ci,j=∑r=1kAi,r∗Br,jC_{i,j}=\sum_{r=1}^kA_{i,r}*B_{r,j}Ci,j=∑r=1kAi,r∗Br,j 是不是不太好理解,没关系看看图就知道了 在矩阵乘法中满足以下运算律: (AB)C=a(BC)(AB)C=a(BC)(AB)C=a(BC) (A+B)C=AC+BC(A+B)C=AC+BC(A+B)C=AC+BC C(A+B)=CA+CBC(A+B)=CA+CBC(A+B)=CA+CB 了解了这么多,我们开始看题,矩阵快速幂,由于矩阵乘法满足结合律,所以我们只需要把它按照一般的快速幂打,再重载一下运算符就可以了