KY191 矩阵幂(用Java实现)

描述

给定一个n*n的矩阵,求该矩阵的k次幂,即P^k。

输入描述:

第一行:两个整数n(2<=n<=10)、k(1<=k<=5),两个数字之间用一个空格隔开,含义如上所示。 接下来有n行,每行n个正整数,其中,第i行第j个整数表示矩阵中第i行第j列的矩阵元素Pij且(0<=Pij<=10)。另外,数据保证最后结果不会超过10^8。

输出描述:

对于每组测试数据,输出其结果。格式为: n行n列个整数,每行数之间用空格隔开,注意,每行最后一个数后面不应该有多余的空格。

示例1

输入:

复制代码
2 2
9 8
9 3
3 3
4 8 4
9 3 0
3 5 7
5 2
4 0 3 0 1
0 0 5 8 5
8 9 8 5 3
9 6 1 7 8
7 2 5 7 3

输出:

复制代码
153 96
108 81
1216 1248 708
1089 927 504
1161 1151 739
47 29 41 22 16
147 103 73 116 94
162 108 153 168 126
163 67 112 158 122
152 93 93 111 97

代码如下:

java 复制代码
import java.util.Scanner;

/*
 * 矩阵幂
 */
public class MatrixPower {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		while(scanner.hasNext()) {
			int n = scanner.nextInt();
			int k = scanner.nextInt();
			int[][] arr = new int[n][n];
			for (int i = 0; i < n; i++) {
				for (int j = 0; j < n; j++) {
					arr[i][j] = scanner.nextInt();
				}
			}
			
			int[][] a = arr;
			
			for (int t = 0; t < k-1; t++) {
				
				//temp矩阵为arr矩阵的t+2次方
				int[][] temp = new int[n][n];
				
				//矩阵乘法的得到的结果保存到temp中
				for (int i = 0; i < n; i++) {
					for (int j = 0; j < n; j++) {
						for (int k1 = 0; k1 < n; k1++) {
							temp[i][j] += a[i][k1] * arr[k1][j];
						}
					}
				}
				
				a = temp;
			}
			
			for(int i = 0;i < n; i++) {
				for(int j = 0;j < n; j++) {
					System.out.print(a[i][j]+" ");
				}
				System.out.println();
			}
			
		}
		
	}
	
	
	
}
相关推荐
pjx9873 分钟前
微服务的“导航系统”:使用Spring Cloud Eureka实现服务注册与发现
java·spring cloud·微服务·eureka
程序媛小盐22 分钟前
贪心算法:最小生成树
算法·贪心算法·图论
Panesle24 分钟前
分布式异步强化学习框架训练32B大模型:INTELLECT-2
人工智能·分布式·深度学习·算法·大模型
多多*40 分钟前
算法竞赛相关 Java 二分模版
java·开发语言·数据结构·数据库·sql·算法·oracle
逐光沧海41 分钟前
数据结构基础--蓝桥杯备考
数据结构·c++·算法·蓝桥杯
Kidddddult42 分钟前
力扣刷题Day 48:盛最多水的容器(283)
算法·leetcode·力扣
爱喝酸奶的桃酥43 分钟前
MYSQL数据库集群高可用和数据监控平台
java·数据库·mysql
AndrewHZ1 小时前
【Python生活】如何构建一个跌倒检测的算法?
python·算法·生活·可视化分析·陀螺仪·加速度计·跌倒检测
唐僧洗头爱飘柔95271 小时前
【SSM-SSM整合】将Spring、SpringMVC、Mybatis三者进行整合;本文阐述了几个核心原理知识点,附带对应的源码以及描述解析
java·spring·mybatis·springmvc·动态代理·ioc容器·视图控制器
写个博客1 小时前
代码随想录算法训练营第三十九天
算法