
蓝桥杯练习BASIC-17 矩阵乘法
发布日期:2021-05-14 23:51:02
浏览次数:18
分类:精选文章
本文共 1882 字,大约阅读时间需要 6 分钟。
矩阵乘法与矩阵幂的问题
问题描述
要求完成一个矩阵乘法与矩阵幂的项目。给定一个n阶单位矩阵A(n×n),以及一个n阶矩阵B(n×n),需要计算A的m次幂,并将结果存储在矩阵C(n×n)中。每次乘法需要将结果赋值给A,执行m次循环。
代码实现
#include#include #include #define N 30using namespace std;int main(){ int A[N][N], B[N][N], C[N][N]; int n, m; while (cin >> n >> m) { // 初始化单位矩阵A memset(A, 0, sizeof(A)); for (int i = 0; i < n; i++) { A[i][i] = 1; } // 读取矩阵B for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> B[i][j]; } } // 进行m次矩阵乘法 while (m--) { // 初始化结果矩阵C memset(C, 0, sizeof(C)); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { for (int k = 0; k < n; k++) { C[i][j] += A[i][k] * B[k][j]; } } } // 赋值矩阵A为结果矩阵 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { A[i][j] = C[i][j]; } } } // 输出结果矩阵A for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (j != n - 1) { cout << A[i][j] << " "; } else { cout << A[i][j]; } } cout << endl; } } return 0;}
代码解释
矩阵初始化
使用memset
函数将矩阵A初始化为n阶单位矩阵。单位矩阵的对角线元素为1,其他元素为0。 读取输入矩阵B
用户通过输入方式读取矩阵B的元素。矩阵幂计算
使用循环来执行m次矩阵乘法。每次乘法计算矩阵C并将结果赋值给矩阵A,确保A始终保存当前的矩阵乘积结果。输出结果
每次循环结束后,输出矩阵A的当前状态。输出时格式化为n行n列,元素之间用空格或换行符分隔。该代码通过逐步初始化、输入处理、矩阵运算和结果输出,完成了矩阵乘法与矩阵幂的问题求解。
发表评论
最新留言
很好
[***.229.124.182]2025年04月19日 22时46分49秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
elasticsearch-5.0.1启动方法
2019-03-13
统计建模与R
2019-03-13
B1005 继续(3n+1)猜想
2019-03-13
B1077 互评成绩计算(python)
2019-03-13
【存储】如何理解Cookie?
2019-03-13
【JS面试题】什么是作用域?什么是自由变量?
2019-03-13
【React基础】jsx的基础使用
2019-03-13
【ES6】何为动态计算属性名?
2019-03-13
【JS基础】常用的数组方法和字符串方法
2019-03-13
【Koa】简单聊聊 ORM 基本概念、ORM应用
2019-03-13
【CSS基础】关于height:100%和height:100vh的区别
2019-03-13
【前端面试】到底我的简历该怎么写?才有机会被邀请面试?【看此文章即可!!!】
2019-03-13
【前端面试】点击一个input依次触发的事件
2019-03-13
【TS基础】初学之 Interface 接口定义
2019-03-13