问题描述
  给定一个N阶矩阵A,输出A的M次幂(M是非负整数)
  例如:
  A =
  1 2
  3 4
  A的2次幂
  7 10
  15 22
输入格式
  第一行是一个正整数N、M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数
  接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值
输出格式
  输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开
样例输入
2 2
1 2
3 4
样例输出
7 10
15 22
资源限制
时间限制:1.0s 内存限制:512.0MB

思路
1,首先了解一下矩阵之间乘法的运算规则

1)假设有两个矩阵A(x1, y1)和矩阵B(x2, y2),其中x和y分别表示行和列,C(x3, y3) = A(x1, y1) × B(x2, y2)
2)那么x3 = x1,y3 = y2,也就是说目标矩阵C的行等于第一个矩阵的行,目标矩阵C的列等于第二个矩阵的列!(这是定理,记住就行了)

2,再了解一下什么是单位矩阵

1)简单的说就是矩阵的0次幂,在整个矩阵中,从左上角到右下角的对角线(称为主对角线)上的元素均为1;
2)概念:在矩阵的乘法中,有一种矩阵起着特殊的作用,如同数的乘法中的1,这种矩阵被称为单位矩阵。它是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为1。除此以外全都为0;(摘自百度百科)
3)个人对于矩阵的0次幂的基本了解就是,如果要算矩阵的0次幂,即求单位矩阵

3,矩阵相乘的代码实现

使用三层循环,第一层循环用于表示目标矩阵C的行数,第二层循环表示目标矩阵C的列数,第三层循环表示运算矩阵A的列数或者运算矩阵B的行数。

这里对于第三层循环说明一下:
一般而言,矩阵A是一个n×m的矩阵,矩阵B是一个m×k的矩阵,那么矩阵C就是一个n×k的矩阵。

代码块

import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);//接收用户输入的数字int n = sc.nextInt();int m = sc.nextInt();int a[][] = new int[n][n];for(int i = 0; i < n; i++){for(int j = 0; j < n; j++){a[i][j] = sc.nextInt();}}int[][]b = a;//拷贝一份矩阵//判断m是否等于0,如果等于0,说明需要求单位矩阵int res[][] = new int[n][n];if(m == 0){for(int i = 0; i < n; i++){for(int j = 0; j < n; j++){System.out.print(i==j?"1 ":"0 ");}System.out.println();}return;}else{while(true){res = f(a,b);a = res;m--;if(m == 1)break;}}//打印矩阵for(int i = 0; i < n; i++){for(int j = 0; j < n; j++){System.out.print(res[i][j]+" ");}System.out.println();}}//矩阵之间相乘static int[][] f(int[][]m1, int[][]m2){int n = m1.length;//矩阵m1的行数int m = m1[0].length;//矩阵m1的列数int p = m2[0].length;//矩阵m2的列数int[][]res = new int[n][p];for(int i = 0; i < n; i++){//第一个矩阵的行数for(int j = 0; j < m; j++){for(int k = 0; k < p; k++){//第二个矩阵的列数res[i][j] += m1[i][k] * m2[k][j];}}}return res;}
}

评测结果

PS
如果发现个人说的有不足,错误,改善等之列的缺陷,还望兄嘚儿可以评论一下,好做出改正,让中国千千万万的老百姓可以享受到绿色、健康、无污染、错误率低的好思路以及好代码^ - ^

试题 基础练习 矩阵乘法相关推荐

  1. 解题报告——蓝桥 试题 基础练习 矩阵乘法——27行代码AC

    储备知识: 矩阵: 矩阵的乘法: 也就是说,结果矩阵第m行与第n列交叉位置的那个值,等于第一个矩阵第m行与第二个矩阵第n列,对应位置的每个值的乘积之和. 矩阵的n次幂同理.不过是自己乘自己. 本题注意 ...

  2. c语言蓝桥杯矩阵乘法,蓝桥杯 基础练习 矩阵乘法

    友情提示:此篇文章大约需要阅读 2分钟37秒,不足之处请多指教,感谢您的阅读. 问题描述 给定一个N阶矩阵A,输出A的M次幂(M是非负整数) 例如: A = 1 2 3 4 A的2次幂 7 10 15 ...

  3. 蓝桥杯 基础练习 矩阵乘法

    问题描述 给定一个N阶矩阵A,输出A的M次幂(M是非负整数) 例如: A = 1 2 3 4 A的2次幂 7 10 15 22 输入格式 第一行是一个正整数N.M(1<=N<=30, 0& ...

  4. 蓝桥杯 BASIC-17 基础练习 矩阵乘法

    问题描述 给定一个N阶矩阵A,输出A的M次幂(M是非负整数) 例如: A = 1 2 3 4 A的2次幂 7 10 15 22 输入格式 第一行是一个正整数N.M(1<=N<=30, 0& ...

  5. python【蓝桥杯vip练习题库】BASIC-17矩阵乘法(枚举)

    试题 基础练习 矩阵乘法 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定一个N阶矩阵A,输出A的M次幂(M是非负整数) 例如: A = 1 2 3 4 A的2次幂 7 10 1 ...

  6. 【Scala-spark.mlib】本地矩阵乘法计算效率比较(稠密稀疏哪家强?)

    矩阵乘法效率比较 1. 矩阵乘法 2. 效率比较  2.1. DenseMatrix(50% zeros) X DenseMatrix  2.2. SparseMatrix X DenseMatrix ...

  7. python【蓝桥杯vip练习题库】ADV-279矩阵乘法

    试题 算法提高 矩阵乘法 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小明最近刚刚学习了矩阵乘法,但是他计算的速度太慢,于是他希望你能帮他写一个矩阵乘法的运算器. 输入格式 输入 ...

  8. python【蓝桥杯vip练习题库】ALGO-86矩阵乘法(枚举)

    试题 算法训练 矩阵乘法 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 输入两个矩阵,分别是ms,sn大小.输出两个矩阵相乘的结果. 输入格式 第一行,空格隔开的三个正整数m,s, ...

  9. CUDA加速计算矩阵乘法进阶玩法(共享内存)

    CUDA加速计算矩阵乘法&进阶玩法~共享内存 一.基础版矩阵乘法 二.为什么可以利用共享内存加速矩阵乘法 1.CUDA内存读写速度比较 2.申请共享内存 三.改进版矩阵乘法(利用共享内存) 一 ...

最新文章

  1. React Native组件开发指南
  2. python第二版第六章课后答案_《Python编程》第六章部分课后练习题
  3. jsoup 获取html中body内容_Java 进阶 利用Jsoup获取HTML页面的各分页中的标题信息...
  4. 2017双11技术揭秘—阿里巴巴数据库技术架构演进
  5. java面向对象super,final,static,匿名对象,内部类学习
  6. HardSoft-Viewer SQL
  7. Java面向对象基础练习题(含答案超详细)
  8. PSNR-峰值信噪比
  9. 浅谈Observer观察者模式
  10. ASR项目实战-决策点
  11. 基于Android的高德地图的定位和运动轨迹记录的功能
  12. Seagate-保修验证(za25shrx)
  13. [单片机学习笔记](35):串级PID算法应用剖析、通过串口控制电机、MPU6050获取平衡车姿态、自制平衡车PID算法程序设计
  14. 【Excel 教程系列第 11 篇】Excel 如何快速下拉填充序列至 10000 行
  15. BUUCTF RSA2
  16. Python判断两个字符串是否为父子集
  17. python移动均线SMA及双均线策略
  18. vue 开发数据可视化地图
  19. 2019秋季高校计算机等级考试,关于组织2019年秋季省高校计算机等级考试报名工作的通知...
  20. 手机连接php代码,转一个手机开发的帖子(来自开发者俱乐_php

热门文章

  1. 学习PS课堂重点笔记(6.混合模式,滤镜和智能对象)
  2. VMware虚拟机资源下载地址
  3. 假设银行一年整存零取的月息为0.63%。现在某人手中有一笔钱, 他打算在今后的5年中的每年年底取出1000元, 到底5年时刚好取完,请算出他存钱时应存入多少?
  4. 深度学习和深度学习框架CNTK入门(一)
  5. python画图系列之个性化显示x轴区段文字
  6. GSMA-eSIM-官网规范说明
  7. Java项目获取路径方法
  8. 移动端百度地图多点标注php,php+js实现百度地图多点标注的方法【第1/2页】
  9. unity 3D里有两种动态加载机制
  10. Android对emoji表情的处理(二)