基础训练:矩阵乘法&矩阵的m次幂

举报
AI 菌 发表于 2021/08/05 00:39:37 2021/08/05
【摘要】 问题描述 给定一个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,输出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次幂所对应的矩阵。相邻的数之间用一个空格隔开

程序清单

#include <iostream>
#include <vector>
using namespace std;

int N=0,M=0;
//函数 MulMatrix()实现矩阵M1*M2 
vector<vector <int> > MulMatrix(vector<vector <int> > M1, vector<vector <int> > M2)
{
	vector<vector <int> > Mul(N, vector<int>(N,0));
	for(int i=0; i<N; i++)
		for(int j=0; j<N; j++) for(int k=0; k<N; k++) { Mul[i][j]+=M1[i][k]*M2[k][j]; }
	return Mul;	
}

//函数ReMulMatrix()实现矩阵A的m次幂 
vector <vector <int> > ReMulMatrix(vector <vector <int> > A, int m)
{
	vector<vector <int> > ResultMatrix(N, vector<int>(N,0));
	for(int i=0; i<N; i++)  //初始化ResultMatrix为单位矩阵  for(int j=0; j<N; j++) { if(i==j) ResultMatrix[i][j]=1; }
	if(m==0)
	{
		return ResultMatrix;  //零次幂为单位矩阵 
	}
	else if(m==1)
		return A;  //1次幂为原矩阵 
	else while(m!=0) { ResultMatrix=MulMatrix(ResultMatrix, A); m--;
		}
	return ResultMatrix;
}

int main()
{
	cin>>N; //N=1-30
	cin>>M; //M=0-5
	//初始化输入a、输出b为包含N个vector<int>的容器,且每个vector<int>包含N个0 
	vector<vector<int> > Output(N, vector<int>(N,0)), a(N, vector<int>(N,0));
	//输入 
	for(int i=0; i<N; i++)
		for(int j=0; j<N; j++)
		{ cin>>a[i][j];
		} //计算 
	Output = ReMulMatrix(a, M);
	// 输出 
	for(int i=0; i<N; i++)
	{
		for(int j=0; j<N; j++)
		{ cout<<Output[i][j]<<" ";
		} cout<<endl;
	}
	return 0;
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68

测试效果

在这里插入图片描述

文章来源: ai-wx.blog.csdn.net,作者:AI 菌,版权归原作者所有,如需转载,请联系作者。

原文链接:ai-wx.blog.csdn.net/article/details/104643412

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。