目录标题

  • 题目描述
  • 解题思路
  • 代码
  • 流程图

题目描述

给定一个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的值
输入样例:
2 2
1 2
3 4

输出

输出描述:
  输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开
输出样例:
7 10
15 22

HINT:时间限制:1.0s 内存限制:512.0MB

解题思路

主要就是搞懂矩阵的乘法就行, 就是用第一个矩阵的行来依次乘以第二个矩阵的列然后再相加就得到了新矩阵的一个元素,之后就是循环行的运算了,还有就是要考虑幂的次数是0次和1次的时候。

代码

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner=new Scanner(System.in);int m=scanner.nextInt();//接收矩阵的阶数和幂数int n=scanner.nextInt();long [][] p=new long[m][m];//定义二阶数组来接收矩阵long [][] q=new long[m][m];for (int i=0;i<m;i++){//输入矩阵的数for (int j=0;j<m;j++){q[i][j]=p[i][j]=scanner.nextLong();}}if (n==0){//若为0阶的话 主对角线为1 其余的都为0for (int i=0;i<m;i++){for (int j=0;j<m;j++){if (i==j){System.out.print(1+" ");}else {System.out.print(0+" ");}}System.out.println();}}else if (n==1){//若为1阶就输出原矩阵就行for (int i=0;i<m;i++){for (int j=0;j<m;j++){System.out.print(p[i][j]+" ");}System.out.println();}}else {//若阶数大于1for (int x=1;x<n;x++){long [][] num=new long[m][m];//定义一个新的二阶数组来当作中转矩阵for (int i=0;i<m;i++){for (int j=0;j<m;j++){//一行一行的算long y=0;//定义一个值来接收计算后的数值  因为矩阵的乘法是第一个矩阵的行乘以第二个矩阵的列的和 得到一个值for (int k=0;k<m;k++){y+=p[i][k]*q[k][j];}num[i][j]=y;//放入中转数组}}q=num;//结束之后再替换}for (int i=0;i<m;i++){//输出最后的值for (int j=0;j<m;j++){System.out.print(q[i][j]+" ");}System.out.println();}}}
}

流程图

Created with Raphaël 2.3.0开始输入矩阵的阶数和幂数m,n 定义两个二维矩阵p和qi<mj<m输入原始矩阵n==0输出m阶的单位矩阵结束n==1输出原始矩阵n>1x<ni<mj<mk<m计算每个位置的数值放入中转矩阵中k++j++i++将中转矩阵转换为q矩阵输出最后的值yesnoyesnoyesnoyesnoyesyesnoyesnoyesnoyesno

Java 蓝桥杯 矩阵乘法相关推荐

  1. 蓝桥杯-矩阵乘法(java)

    算法训练 矩阵乘法 时间限制:1.0s 内存限制:512.0MB问题描述输入两个矩阵,分别是m*s,s*n大小.输出两个矩阵相乘的结果.输入格式第一行,空格隔开的三个正整数m,s,n(均不超过200) ...

  2. java:蓝桥杯 矩阵乘法

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

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

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

  4. java蓝桥杯加法变乘法_蓝桥杯-加法变乘法-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  5. java蓝桥杯练习 矩阵加法

    java蓝桥杯练习 矩阵加法 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定两个N×M的矩阵,计算其和.其中: N和M大于等于1且小于等于100,矩阵元素的绝对值不超过1000 ...

  6. 标题 日期问题java蓝桥杯,日期类的使用(java)-蓝桥杯

    蓝桥杯日期问题常考,java提供了日期类很方便: //日历类 Calendar c = Calendar.getInstance(); // 获取实例化对象 Date date =c.getTime( ...

  7. Java 蓝桥杯 我们的征途是星辰大海

    Java 蓝桥杯 我们的征途是星辰大海 最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表空地,curiosity可以穿过它 '#' 代 ...

  8. java矩阵连乘算法_使用java写的矩阵乘法实例(Strassen算法)

    Strassen算法于1969年由德国数学家Strassen提出,该方法引入七个中间变量,每个中间变量都只需要进行一次乘法运算.而朴素算法却需要进行8次乘法运算. 原理 Strassen算法的原理如下 ...

  9. strassen算法java_使用java写的矩阵乘法实例(Strassen算法)_Java_软件编程

    Strassen算法于1969年由德国数学家Strassen提出,该方法引入七个中间变量,每个中间变量都只需要进行一次乘法运算.而朴素算法却需要进行8次乘法运算. 原理 Strassen算法的原理如下 ...

最新文章

  1. 不知道这些,简历上千万不要说你会 Redis 持久化。。。
  2. ==和equals()的区别
  3. .NET Core加解密实战系列之——使用BouncyCastle制作p12(.pfx)数字证书
  4. linux脚本登录启动失败,linux – 在X上运行shell脚本失败登录尝试
  5. axios 中文文档、使用说明
  6. android 学习随笔十六(广播 )
  7. 华为C8825D刷机失败解决方法
  8. 服务器系统盘单独硬盘,我的服务器今天加了个硬盘,可以实现双系统吗?
  9. asp.net 运行原理
  10. xmind 软件画思维导图
  11. SPI子系统分析之一:框架
  12. iphone中input标签会多出一块的解决办法
  13. Ubuntu 16.04 apt 国内源
  14. Gradle删除本地库文件
  15. Iphone备份SHSH的方法步骤
  16. Android攻城狮ViewFlipper
  17. 312. 戳气球(区间dp)
  18. 对称矩阵的判定 C语言 SDUT
  19. MJ上下拉刷新的使用方法 -2018.9.29
  20. FLINK 基于1.15.2的Java开发-Watermark是怎么解决延迟数据唯一正确的生产级解决方案-目前市面上的例子都有问题

热门文章

  1. Eigen官网教程(1) Matrix相关
  2. python 将数据写入csv文件
  3. sqlite 模糊匹配日期_SQLite模糊查找(like) | 学步园
  4. 迭代终止准则的三种形式_一种经验模态分解筛选迭代过程终止准则的方法与流程...
  5. mysql做四则运算_MySQL字符串进行四则运算以及比较
  6. devops之路rancher安装
  7. Android 开发之旅:深入分析布局文件又是“Hello World!”
  8. 流氓百度乱发短信的经历
  9. svn本地没有提交却被还原,找回本地的文件记录的方法
  10. calendar操作详解