快速幂 与矩阵快速幂

线性代数学习笔记(十)——矩阵运算(二) 本篇笔记讲解矩阵的幂运算和矩阵的转置,其中矩阵进行幂运算的前提是矩阵为方阵,矩阵幂运算的两条性质与数的幂运算规则类似;矩阵转置的定义与行列式转置类似,但要注意由于矩阵的行数和列数不同,所以转置之后行数和列数变换。 阅读详情

转自CXCXCXC 

 

 

/*快速幂*/
int qpow(int a, int b) {
    int ans = 1, base = a;
    while (b) {
        if (b & 1)
            ans *= base;
            base *= base;
            b >>= 1;
    }
    return ans;
}
/*矩阵快速幂*/

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int mod = 10000;
const int maxn = 35;
int N;
struct Matrix {
    int mat[maxn][maxn];
    int x, y;
    Matrix() {
        memset(mat, 0, sizeof(mat));
        for (int i = 1; i <= maxn - 5; i++) mat[i][i] = 1;
    }
};
inline void mat_mul(Matrix a, Matrix b, Matrix &c) {
    memset(c.mat, 0, sizeof(c.mat));
    c.x = a.x; c.y = b.y;
    for (int i = 1; i <= c.x; i++) {
        for (int j = 1; j <= c.y; j++) {
            for (int k = 1; k <= a.y; k++) {
                c.mat[i][j] += (a.mat[i][k] * b.mat[k][j]) % mod;
                c.mat[i][j] %= mod;
            }
        }
    }
    return ;
}
inline void mat_pow(Matrix &a, int z) {
    Matrix ans, base = a;
    ans.x = a.x; ans.y = a.y;
    while (z) {
        if (z & 1 == 1) mat_mul(ans, base, ans);
        mat_mul(base, base, base);
        z >>= 1;
    }
    a = ans;
}
int main() {
    while (cin >> N) {
        switch (N) {
            case -1: return 0;
            case 0: cout << "0" << endl; continue;
            case 1: cout << "1" << endl; continue;
            case 2: cout << "1" << endl; continue;
        }
        Matrix A, B;
        A.x = 2; A.y = 2;
        A.mat[1][1] = 1; A.mat[1][2] = 1;
        A.mat[2][1] = 1; A.mat[2][2] = 0;
        B.x = 2; B.y = 1;
        B.mat[1][1] = 1; B.mat[2][1] = 1;
        mat_pow(A, N - 1);
        mat_mul(A, B, B);
        cout << B.mat[1][1] << endl;
    }
    return 0;
}

 

矩阵快速幂以及dp矩阵优化 今天我来说说矩阵快速幂以及dp矩阵优化,我先来讲矩阵快速幂。 阅读详情

相关推荐

矩阵的幂(Matrix Powers)

矩阵的幂(Matrix Powers) 矩阵对角化给计算矩阵的幂提供了简便方法 我们将矩阵进行分解,然后在计算矩阵的幂 假设我们求解 uk=Aku0\boldsymbol{u}_k=A^k\boldsymbol{u}_0uk​=Aku0​ 由于 XX−1=IXX^{-1}=IXX−1=I,所以下式可以简化 图中矩阵XXX 为矩阵AAA 的特征向量构成的矩阵、矩阵Λ\LambdaΛ 为矩阵AAA 的特征值构成的对角矩阵 Step 1:先求解出特征向量矩阵XXX、特征值矩阵Λ\LambdaΛ、矩阵X−1X^{

一个搬运知识的笨小孩 6359

线性代数基础02_矩阵(下)&向量

线性代数、矩阵、向量

l15202833159的博客 3385

FreeRTOS项目:智能手表(1);

从 “最底层启动”→“系统基础配置”→“硬件驱动”→“中间件能力封装”→“上层业务功能”,分层递进、从基础到应用,就能逐步把整个项目的逻辑串联起来~

weixin_46847454的博客 1447

蓝桥志6——矩阵乘法

问题: 矩阵的幂运算 输入: 第一行:两个正整数n,m。n代表矩阵阶数,m代表幂的次数,1<n<=30,0<=m<=5 接下来n行:每行n个绝对值不超过10的非负整数 输出: 幂预算后的矩阵,即n行n列空格间隔的数字。 输入样例: 2 2 1 2 3 4 输出样例: 7 10 15 22 分析: 这道题在矩阵乘法的基础上进行多次,就变成个幂运算,只是乘法次数的变化, 其算法...

weixin_44373412的博客 981

基于dify平台批量分析excel格式信息

如何以表格形式批量输入一些信息,然后让大模型以对话应用形式逐条进行推理分析?请逐行分析以下数据,给出推理结果:{{input}}这里提供一个分步解决方案,结合。

knightissocool的博客 8011

HTML5期末大作业:关于家乡介绍的HTML网页设计——郑州美景HTML+CSS(5页) 学生DW家乡介绍网页设计作业成品 web课程设计网页规划与设计

HTML5期末大作业:我的家乡——郑州美景HTML+CSS(5页) 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 明星、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他 等网页设计题目, A+水平作业, 可满足大学生网页大作业网页设计需求, 喜

qq_365392777 1万+

计算矩阵幂次的一般性方法

初学线性代数时,对于计算矩阵幂次,是采用所谓找规律的方法,这种方法其实非常不科学。因为这样能计算的都是特别特殊的矩阵,对于一般性的矩阵,这种方法没有意义,而且所谓的找规律,只是简单的计算矩阵乘法,是命题人凑给你的。并不能看到问题的本质。 下面介绍一些一般性的方法 一.rank(A)=1的矩阵,且能够分解为列向量乘行向量的形式。 二.可对角化的矩阵 需要对角化矩阵 ...

wwxy1995的博客 2万+

Python 爬虫实战:爬取今日头条文章与阅读量数据

本文详细介绍了基于Python爬取今日头条文章与阅读量数据的完整方案。通过分析今日头条API接口,采用Requests+正则表达式技术实现数据抓取,重点解决加密参数构造、请求头模拟、反爬规避等核心问题。文章包含文章列表获取、详情数据提取、互动数据采集等完整流程,并提供数据存储与基础分析方法。同时强调合规使用爬虫技术,控制爬取频率,避免干扰平台运营。该方案可为内容传播分析、用户兴趣研究提供数据支持,但需注意接口参数更新和反爬机制变化,适时调整代码实现。

2503_91057718的博客 2519

快速幂 矩阵快速幂

前言:好像没啥好写的,链接可能还没有更新完 快速幂 快速幂,用于解决当n很大时的情况。通常与取模同时应用。 用最笨的方法求,即。时间复杂度为,而快速幂(附带取模),可以将时间复杂度降低为。 利用倍增的思想,例如,等于,又等于,即,如果n为奇数,,那么换成代码就是: ll Powermod(ll a,ll b) { ll ans=1; a=a%mod; while(b>0) { if(b%2==1) ans=(ans*a)%...

issey的博客 8275

SAP ABAP CDS View 里的日期函数

摘要:本文系统介绍了ABAP CDS日期函数在企业级应用中的关键作用,包括账龄计算、合同续期等业务场景。重点解析了DATS_IS_VALID、DATS_DAYS_BETWEEN等核心函数的语义和使用边界,特别强调on_error四种异常处理策略的选择逻辑。针对系统日期获取,对比了经典CDS的参数注入和View Entity会话变量两种方式。文章还提供了完整可运行的示例代码(包含CDS视图和ABAP程序),帮助开发者快速验证不同版本下的函数行为差异,确保在实际项目中正确应用这些日期处理函数。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 379

华为OD机考双机位C卷 - 信道分配(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 信道分配

算法大师! 453

矩阵快速幂算法

矩阵快速幂算法、利用矩阵快速幂计算斐波那契数列 矩阵快速幂的本质就是 矩阵+快速幂,思路没什么变化。 快速幂的思路见之前的 快速幂介绍,这里就不多说了。 至于矩阵的话,知道矩阵是啥,怎么算乘法就可以了。 相关矩阵基础 注:已经了解矩阵的可以跳过本部分内容。 简单来说 n∗mn*mn∗m 的矩阵就是个 nnn 行 mmm 列 的大方块。 矩阵要进行乘法运算必须保证第一个矩阵的列数=第二个矩阵的行数。

果光的博客 4487

ESD防护设计宝典(十九):元器件选型宝典——共模电感

然而,这位“大师”的脾气也颇为古怪,若设计者不解其性、用之不当,它非但不能抑制噪声,反而会引入信号完整性恶化、电源压降等新问题,甚至让您的系统EMC性能“雪上加霜”,导致项目在测试阶段功亏一篑。本文将带您深入共模电感的内在世界,从本质解析到参数详解,从设计陷阱到实战选型,全方位领悟其平衡艺术,掌握其应用核心,规避那些足以让项目翻车的致命陷阱。:这是存在于电路板内部的“家贼”。共模电感实质上是一个四端器件,它通过磁场的“加法”与“减法”运算,巧妙地实现了对共模噪声的抑制,同时为差模信号大开绿灯。

m0_56451176的博客 421

快速幂和矩阵快速幂

前言 新年第一篇技术类的文章,应该算是算法方面的文章的。看标题:快速幂和矩阵快速幂,好像挺高大上。其实并不是很难,快速幂就是快速求一个数的幂(一个数的 n 次方)。 快速幂 首先,来看一下幂,我们知道,假设有一个整数 x, 如果我们要求出 x^n (即为 x 的 n 次方)的值,最容易想到的办法就是循环相乘(这里不考虑整数溢出的情况下),于是我们很容易就可以写出下面的代码: ...

指点 4678

Cesium雷达追踪追踪(圆锥体效果)

【代码】Cesium雷达追踪追踪(圆锥体效果)

God's asylum的博客 2931

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

快速幂,矩阵快速幂

分清一维k阶和k维一阶下面这个是k维一阶,依赖同级别好几个维度,但是只依赖一个同级别k维一阶是每个对应每一列竖着的3.矩阵的幂不同,一维k阶是n-(k-1)的幂,k维1阶是n-1次幂注意:vector一定要用传引用作为参数,否则会很慢!!!

2401_87050480的博客 1747

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

快速幂与矩阵快速幂

快速幂与矩阵快速幂

Mr_huoge的博客 744

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

矩阵快速幂

昨天晚上矩阵小王子给我们讲了一下矩阵快速幂,学习了一下,

大神养成中..... 2万+

矩阵快速幂总结

基础知识:(会基础的直接看应用部分)(1)矩阵乘法简单的说矩阵就是二维数组,数存在里面,矩阵乘法的规则:A*B=C其中c[i][j]为A的第i行与B的第j列对应乘积的和,即:代码:const int N=100; int c[N][N]; void multi(int a[][N],int b[][N],int n)//n是矩阵大小,n&lt;N { memset(c,0,sizeof c...

努力 4万+

【算法分享】快速幂与矩阵快速幂算法详解

在程序竞赛和实际开发中,我们经常遇到需要计算an这样的幂运算。当n很大时(109),直接用循环运算肯定会TLE。这时候就需要用到,而当我们需要计算矩阵的幂时,就派上用场了。

AAA_fanfan的博客 2423

矩阵及矩阵快速幂

矩阵是一个由实数组成的长方形集合。行数和列数相等的矩阵叫做方阵。下面就是一个方阵。

gaomuchen_120309的博客 2034

从快速幂到矩阵快速幂入门

个人博客链接: 从快速幂到矩阵快速幂入门 快速幂 假设大家已经快忘记了快速幂这个东西 一般对于aba^bab我们只需要连续乘bbb次aaa就能得到答案了: 例如 232^323只需要连续乘333次222即可,23=2∗2∗22^3=2*2*223=2∗2∗2 2132^{13}213只需要连续乘131313次222即可,213=2∗2∗2∗2∗2∗2∗2∗2∗2∗2∗2∗2∗22^{1...

nuoyanli的博客 1686

快速幂、矩阵快速幂

斐波那契数列差不多是最简单的矩阵快速幂的应用,矩阵快速幂的难点在于如何构建一个矩阵,使其能够满足递推式。

chp的博客 564
上一篇: Bubble Sort
下一篇: Prim算法(一)之 C语言详解
KLFTESPACE
博客等级 码龄9年 66粉丝 655原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值