首页 > 其他分享 >【学习笔记】【自学】【模板】矩阵快速幂

【学习笔记】【自学】【模板】矩阵快速幂

时间:2023-09-10 21:14:44浏览次数:46  
标签:lfloor right 矩阵 times cdots 自学 模板 vdots

题目描述:给定 $n \times n$ 的矩阵 $A$,求 $A^k$。

矩阵:一个 $m \times n$ 的矩阵是一个由 $m$ 行 $n$ 列元素排列成的矩形阵列。即形如

$$ A = \begin{bmatrix} a_{1 1} & a_{1 2} & \cdots & a_{1 n} \\ a_{2 1} & a_{2 2} & \cdots & a_{2 n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m 1} & a_{m 2} & \cdots & a_{m n} \end{bmatrix} \text{.} $$
矩阵乘法:两个大小分别为 $m \times n$ 和 $n \times p$ 的矩阵 $A, B$ **相乘**的结果为一个大小为 $m \times p$ 的矩阵。将结果矩阵记作 $C$,则

$$ c_{i j} = \sum_{k = 1}^{n} a_{i k} b_{k j} \text{    ($1 \le i \le m$, $1 \le j \le p$).} $$
矩阵的幂:一个大小为 $n \times n$ 的矩阵 $A$ 可以与自身进行乘法,得到的仍是大小为 $n \times n$ 的矩阵,记作 $A^2 = A \times A$。进一步地,还可以递归地定义任意高次方 $A^k = A \times A^{k - 1}$,或称 $A^k = \underbrace{A \times A \times \cdots \times A}_{k \text{ 次}}$。
特殊地,定义 $A^0$ 为单位矩阵 $I = \begin{bmatrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \end{bmatrix}$。

快速幂:将 $x^y$ 分解为 $x^{\left\lfloor\frac{y}{2}\right\rfloor}\cdot x^{\left\lfloor\frac{y}{2}\right\rfloor} \cdot x^{y\mod 2}$。在 $y$ 较小时直接算出 $x^y$。

矩阵快速幂,顾名思义,就是将矩阵进行快速幂。

将 $A^k$ 分解为 $A^{\left\lfloor\frac{k}{2}\right\rfloor}\cdot A^{\left\lfloor\frac{k}{2}\right\rfloor} \cdot A^{k\mod 2}$ 即可求出结果。

标签:lfloor,right,矩阵,times,cdots,自学,模板,vdots
From: https://www.cnblogs.com/CSP-AK-zyz/p/17691905.html

相关文章

  • 【学习笔记】【自学】【模板】三分法
    题目描述:给定一个$n$次函数$f(x)$形如$a_1x^n+a_{2}x^{n-1}+......+a_{n-1}x^2+a_nx+a_{n+1}$,求$f(x)_{\max}$,且$x\in[l,r]$,设使得$f(x)_{\max}$的$x$为$x_{\max}$。对于一个区间$[l,r]$而言,若确定使得$f(x)$为最大值的$x$定在$[l,r]$中,则可以使用三分法求......
  • 【学习笔记】【自学】三维偏序 (CDQ)
    [P3810【模板】三维偏序(陌上花开)](https://www.luogu.com.cn/problem/P3810)题目描述:有$n$个元素,第$i$个元素有$a_i,b_i,c_i$三个属性,设$f(i)$表示满足$a_j\leqa_i$且$b_j\leqb_i$且$c_j\leqc_i$且$j\nei$的$j$的数量。对于$d\in......
  • 矩阵
             ......
  • 矩阵快速幂
    矩阵乘法的定义矩阵A*矩阵B=矩阵C                         性质:满足结合律,分配率,但不满足交换律矩阵乘法的特殊情形矩阵A是一个N*N的矩阵,矩阵F是一个N*1的矩阵,设F1=A*F,发现F1也是一个N*1的矩阵,只有一行......
  • chrome插件:一个基于webpack + react的chrome 插件项目模板
    项目结构$tree-L1.├──README.md├──node_modules#npm依赖├──package.json#详细依赖├──pnpm-lock.yaml├──public#里边包含dist,安装的时候安装这个目录即可├──src#源码文......
  • 支持 range-based for 循环的链式前向星模板
    众所周知,OI中图的存储主要有两种方式:使用std::vector实现的邻接表,以及链式前向星。前者的常数较大,有时候会出现卡不过去的情况,但是支持range-basedfor循环,遍历的时候代码更简洁。可不可以在使用链式前向星的同时,使用range-basedfor循环呢?如以下代码所示:Graphgraph;int......
  • Java自学网站推荐--全网最靠谱
    简介网上有各种Java学习网站,本文推荐的这个Java网站全网最靠谱,质量远超其他所有网站。这个网站是:自学精灵,这是全网最强的Java学习网站,可以直接百度搜索自学精灵,或者访问:自学精灵-IT技术星球。我不喜欢“全网最强”这样的字眼,但本站的内容确实是全网最强!(大家可以多找几个Java网站......
  • Java自学网站推荐--全网最靠谱
    ​简介网上有各种Java学习网站,本文推荐的这个Java网站全网最靠谱,质量远超其他所有网站。这个网站是:自学精灵,这是全网最强的Java学习网站,可以直接百度搜索自学精灵,或者访问:自学精灵-IT技术星球。​我不喜欢“全网最强”这样的字眼,但本站的内容确实是全网最强!(大家可以多找几个......
  • AC自动机模板
    Smiling&Weeping----自从我们相遇的那一刻,你是我白天黑夜不落的星 题目链接:Problem-2222(hdu.edu.cn)题目就是一道AC自动机模板Talkischeap,showmethecode1#include<iostream>2#include<cmath>3#include<cstring>4#i......
  • 自学CSday1
    初识c语言1:写c代码时,新建项目(设置好自己代码的存放点);添加源文件c代码中,.c--源文件  .h--头文件(head,就是放在最头部):写c语言时,文件名称命名为test.c2:main--主函数-程序的入口与//不可以没有,在一串代码中有且只有一个3:return0;-返回0(此处0为整型)4:int-整型intmain中,main前面的int......