关闭

基础练习 BASIC-17 矩阵乘法

标签: java数据结构算法蓝桥杯
66人阅读 评论(0) 收藏 举报
分类:
问题描述
  给定一个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

import java.util.Scanner;

public class Main{
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int n = input.nextInt();
		int m = input.nextInt();
		
		int [][] arr = new int[n][n];
		int [][] result = new int[n][n];
		int [][] temp = new int[n][n];
		int [][] answer = new int[n][n];
		for (int i=0; i<arr.length; i++){
			for(int j=0; j<arr[i].length; j++){
				arr[i][j] = input.nextInt();
				result[i][j] = 0;
				temp[i][j] = arr[i][j];
				answer[i][j] = 0;
			}
		}
		if (m==0){
			for (int i=0; i<answer.length; i++){
				answer[i][i]=1;
			}
			for (int i=0; i<answer.length; i++){
				for(int j=0; j<answer[i].length; j++){
					System.out.print(answer[i][j]+" ");
				}
				System.out.println();
			}
			return;
		}
		int num = 0;
		for (int index=1; index<m; index++){
			for (int i=0; i<arr.length; i++){
				for(int j=0; j<arr[i].length; j++){
					for (int k =0; k<n; k++){
						//System.out.println(temp[i][k]+"------"+arr[k][j]);
						result[i][j]  = result[i][j]  + temp[i][k]*arr[k][j];
					}
				}
			}   
			for (int i=0; i<result.length; i++){
				for(int j=0; j<result[i].length; j++){
					temp[i][j] = result[i][j];
					answer[i][j] = result[i][j];
				//	System.out.print(result[i][j]+" ");
					result[i][j] = 0;
					
				}
				//System.out.println();
			}
		}
		
		for (int i=0; i<answer.length; i++){
			for(int j=0; j<answer[i].length; j++){
				System.out.print(answer[i][j]+" ");
			}
			System.out.println();
		}
	}
}



0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

2016蓝桥杯算法训练——矩阵乘法

矩阵乘法 问题描述   输入两个矩阵,分别是m*s,s*n大小。输出两个矩阵相乘的结果。 输入格式   第一行,空格隔开的三个正整数m,s,n(均不超过200)。   接...
  • qq_21385857
  • qq_21385857
  • 2016-02-10 14:52
  • 1678

矩阵分解:奇异值分解(SVD)详解

SVD分解 SVD分解是浅层语义分析(LSA)的数学基础,本文是我的LSA学习笔记的一部分,之所以单独拿出来,是因为SVD可以说是LSA的基础,要理解LSA必须了解SVD,因此将LSA笔记的SV...
  • winone361
  • winone361
  • 2015-10-26 17:20
  • 1139

[BASIC-17] 矩阵乘法

基础练习 矩阵乘法   时间限制:1.0s   内存限制:512.0MB 问题描述   给定一个N阶矩阵A,输出A的M次幂(M是非负整数)   例如:   A = ...
  • u011506951
  • u011506951
  • 2014-05-19 13:30
  • 1303

[BASIC-17] 矩阵乘法

基础练习 矩阵乘法   时间限制:1.0s   内存限制:512.0MB 问题描述   给定一个N阶矩阵A,输出A的M次幂(M是非负整数)   例如:   A = ...
  • u011506951
  • u011506951
  • 2014-05-19 13:30
  • 1303

蓝桥-BASIC-17-矩阵乘法

ACM模版描述题解模版题,矩阵快速幂,但是蓝桥不让带模版,还是自己手打吧!其实数据范围这么小,普通的矩阵乘法乘 M−1M-1 次就行,完全没必要用矩阵快速幂,非但没有什么效率上的提升,说不定还会慢一些...
  • f_zyj
  • f_zyj
  • 2017-06-01 16:00
  • 140

基础练习 矩阵乘法

问题描述   给定一个N阶矩阵A,输出A的M次幂(M是非负整数)   例如:   A =   1 2   3 4   A的2次幂   7 10   15 22 输入格式   第一行...
  • Liukx940818
  • Liukx940818
  • 2015-03-11 21:09
  • 1049

蓝桥杯 BASIC-07 矩阵乘法(矩阵的幂 算法)

Description:设A是一个N*N的矩阵,很多时候人们需要计算一个矩阵的n次幂,当n足够大时,计算量会变得很大,时间会变得很长,编程快速计算A^n。     Input:matirx A  ...
  • xuejy_chn
  • xuejy_chn
  • 2015-02-04 22:33
  • 255

蓝桥杯--基础训练--时间转换,字符串对比、矩阵乘法-J(Java)

一、时间转换 问题描述:给定一个以秒为单位的时间t,要求用“::”的格式来表示这个时间。表示时间,表示分钟,而表示秒,它们都是整数且没有前导的“0”。例如,若t=0,则应输出是“0:0:0”;若t...
  • pangjunwei
  • pangjunwei
  • 2017-11-27 19:49
  • 100

数学基础-线性代数-矩阵乘法

矩阵乘法 参考:http://wenku.baidu.com/link?url=kIEuMGLKS_vvF2AJ5N3dvKN8Jw2TOV4hKkqv36zXM8tjGlkqzZ6WjtmquLY...
  • newmarui
  • newmarui
  • 2016-09-28 16:26
  • 351

图像处理C++基础 02 ——使用读写文件的矩阵乘法

目标: 掌握指针和结构、文件的结合使用。掌握形参与实参首先通过读书,掌握c语言文本文件的基本概念和基本操作。熟悉文本文件的读写及fopen/fclose,fscanf/fprintf等函数。  ...
  • qq_26751117
  • qq_26751117
  • 2016-12-03 20:55
  • 235
    个人资料
    • 访问:15026次
    • 积分:1594
    • 等级:
    • 排名:千里之外
    • 原创:152篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条