当前位置: 首页 > news >正文

方阵幂次(矩阵快速幂)

#include <bits/stdc++.h>
using namespace std;

int n;
vector<vector<int>> fuc(vector<vector<int>> a,vector<vector<int>> b){ // 矩阵乘法函数
  vector<vector<int>> f(n,vector<int>(n));
  for(int i=0;i<n;i++){
    for(int j=0;j<n;j++){
      for(int k=0;k<n;k++){
        f[i][j]+=a[i][k]*b[k][j];
      }
    }
  }
  return f;
}

int main()
{
  int m;cin>>n>>m;
  vector<vector<int>> a(n,vector<int>(n));
  for(int i=0;i<n;i++){
    for(int j=0;j<n;j++){
      cin>>a[i][j];
    }
  }

  vector<vector<int>> ans(n, vector<int>(n, 0));
  for (int i = 0; i < n; i++) {
        ans[i][i] = 1;  // 单位矩阵
    }
  while(m){ // 快速幂算法
    if(m&1) ans=fuc(ans,a);
    a=fuc(a,a);
    m>>=1;
  }
  for(int i=0;i<n;i++){
    for(int j=0;j<n;j++){
      cout<<ans[i][j]<<" ";
    }
    cout<<endl;
  }
  return 0;
}

矩阵乘法函数 fuc 用vector可以作为矩阵返回值

ans 要初始化为一个单位矩阵

然后用快速幂计算 结果

相关文章:

  • 计算机等级考试数据库三级(笔记3)
  • GPT4o漫画制作(小白教程)
  • MATLAB 控制系统设计与仿真 - 31
  • AUTOSAR Mcal SPI - 基于Ifx TC37x
  • 地下水砷超标处理技术解析
  • 邪性!Anaconda安装避坑细节Windows11
  • RPC 同步与异步之使用Spring WebFlux + WebClient或Netty + Reactor
  • ruoyi-vue部署 linux 系统项目安装部署 oa 项目部署 (合集)
  • 2025年湖南建筑安全员B证备考资料
  • 【AI论文】LEGO拼图:大型语言模型在多步骤空间推理方面的表现如何?
  • 【SPP】蓝牙串口协议(SPP)深度解析:从 RS232 仿真到设备互联的技术实现
  • 基于深度学习的图像超分辨率技术研究与实现
  • 格雷码、汉明码,CRC校验的区别
  • Vue3.X项目中包依赖的解析与安装出现问题如何解决?
  • 21天Python计划:python下载和开发工具介绍
  • 【Linux】进程的详讲(上)
  • 开源测试用例管理平台
  • beanie.exceptions.CollectionWasNotInitialized
  • L2正则化:优化模型的平滑之道
  • JAVA 应用实现 APM 自动注入(Docker 篇)
  • 厦门成交型网站建设公司/抖音关键词排名查询工具
  • 做网站 接活/产品推广文案怎么写
  • 东莞网站建设十大品牌/什么软件能搜索关键词能快速找到
  • 免费做简历的软件网站/线下营销推广方式有哪些
  • 安徽专业建网站/视频号排名优化帝搜软件
  • django 做网站赚钱/百度大数据预测平台