蓝桥杯每日一练:矩形乘法

举报
川川菜鸟 发表于 2022/04/14 02:40:24 2022/04/14
【摘要】 一、题目 问题描述   给定一个N阶矩阵A,输出A的M次幂(M是非负整数)   例如:   A =   1 2   3 4   A的2次幂   7 10   15 22 输入格式   第一行是一个正整数...

一、题目

问题描述
  给定一个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

python代码与解析

A,B,C 是三个矩阵,若 A × B = C ,矩阵C的第i行第j列元素=矩阵A的第i行元素与矩阵B的第j列对应元素乘积之和。
例如:
在这里插入图片描述
代码:

# coding=gbk
"""
作者:川川
@时间  : 2022/1/20 17:24
群:428335755
"""
#
def solve(N, rect1, 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] += rect1[i][n] * rect_ans[n][j]
    return rect2

if __name__ == '__main__':
    N, M =map(int, input().split())     # 输入数据
    rect1 = [[] for _ in range(N)]       # 定义矩阵

    for i in range(N):
        arr = input().split()
        for j in range(N):
            rect1[i].append(int(arr[j])) # 输入数据

    if M > 0:
        # 矩阵的幂
        rect_ans = rect1
        for i in range(M-1):
            rect_ans = solve(N, rect1, rect_ans)
    else:
        # 幂等于0,输出单位矩阵
        rect_ans = [[0 for _ in range(N)] for _ in range(N)]
        for i in range(N):
            rect_ans[i][i] = 1

    # 格式化输出
    for i in range(N):
        for j in range(N):
            print(rect_ans[i][j], end=' ')
        print()
# 10 5
# 0 4 3 6 0 5 2 5 0 1
# 3 0 1 5 1 0 7 1 4 9
# 6 0 0 5 0 9 0 2 0 6
# 0 9 5 0 2 1 4 1 5 0
# 0 1 5 3 0 0 3 0 0 9
# 9 4 9 3 3 0 0 6 8 9
# 7 5 0 8 5 4 0 4 4 2
# 5 9 9 0 7 9 5 0 4 1
# 7 3 2 4 3 0 3 1 0 0
# 5 3 8 7 7 3 3 1 7 0

# 2 2
# 1 2
# 3 4


  
 
  • 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

三、视频讲解

视频讲解:矩形乘法

文章来源: chuanchuan.blog.csdn.net,作者:川川菜鸟,版权归原作者所有,如需转载,请联系作者。

原文链接:chuanchuan.blog.csdn.net/article/details/122606384

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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