蓝桥杯【python】——矩阵的乘法

编程入门 行业动态 更新时间:2024-10-11 21:28:24

蓝桥杯【python】——矩阵的<a href=https://www.elefans.com/category/jswz/34/1768740.html style=乘法"/>

蓝桥杯【python】——矩阵的乘法

1.题目

给定一个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

2.思路

1.定义矩阵平方函数
2输入矩阵的阶次和幂次
3.输入矩阵元素—for循环
4.在for循环中调用矩阵平方函数
5.考虑特殊幂次情况:矩阵的0次幂是单位矩阵E

3.代码##

def solve(N,rect,rect_ans):     ##定义矩阵相乘的函数rect2 = [[0 for _ in range(N)] for _ in range(N)]for i in range(N):for j in range(N):for n in range(N):rect2[i][j] += rect[i][n]*rect[n][j]return rect2N,M = map(int,input().split())          ##输入数据
rect = [[]for _ in range(N)]
for i in range(N):arr = input().split()for j in range(N):rect[i].append(int(arr[j]))if M > 0:rect_ans = rectfor i in range(M-1):                    ##矩阵的M幂rect_ans = solve(N,rect,rect_ans)
else:                                       ##矩阵的0次幂为单位矩阵rect_ans = [[0 for _ in range(N)] for _ in range(N)]for i in range(N):rect_ans[i][i] = 1for i in range(N):                      ##格式化输出for j in range(N):print(rect_ans[i][j],end=" ")print()

更多推荐

蓝桥杯【python】——矩阵的乘法

本文发布于:2024-03-07 18:45:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1718619.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:乘法   矩阵   蓝桥杯   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!