L1-048 矩阵A乘以B(Python实现) 测试点全过

这篇具有很好参考价值的文章主要介绍了L1-048 矩阵A乘以B(Python实现) 测试点全过。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言: {\color{Blue}前言:} 前言:本系列题使用的是“PTA中的团体程序设计天梯赛——练习集”的题库,难度有L1、L2、L3三个等级,分别对应团体程序设计天梯赛的三个难度,如有需要可以直接查看对应专栏。发布个人的刷题笔记的同时,也是希望可以帮助到有需要的人,我会尽量的解释每一步代码,如有错误或者可以优化的地方还望各位CSDN的朋友可以指出来。更新速度预计是每天不定时更新三道,若当天没有更新后期将会补上。

题目

给定两个矩阵 A A A B B B,要求你计算它们的乘积矩阵 A B AB AB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若 A A A R a R_a Ra行、 C a C_a Ca 列, B B B R b R_b Rb行、 C b C_ b Cb列,则只有 C a C_a Ca R b R_b Rb相等时,两个矩阵才能相乘。

输入格式
输入先后给出两个矩阵 A A A B B B。对于每个矩阵,首先在一行中给出其行数 R R R和列数 C C C,随后 R R R行,每行给出 C C C个整数,以1个空格分隔,且行首尾没有多余的空格。输入保证两个矩阵的 R R R C C C都是正数,并且所有整数的绝对值不超过100。

输出格式:
若输入的两个矩阵的规模是匹配的,则按照输入的格式输出乘积矩阵 A B AB AB,否则输出Error: Ca != Rb,其中Ca A A A的列数,Rb B B B的行数。

输入样例1:

2 3
1 2 3
4 5 6
3 4
7 8 9 0
-1 -2 -3 -4
5 6 7 8

输出样例1:

2 4
20 22 24 16
53 58 63 28

输入样例2:

3 2
38 26
43 -5
0 17
3 2
-11 57
99 68
81 72

输出样例2:文章来源地址https://www.toymoban.com/news/detail-685338.html

Error: 2 != 3

题解

def multiply_matrices(A, B):
    # 获取矩阵 A 和 B 的行列数
    R_a, C_a = len(A), len(A[0])
    R_b, C_b = len(B), len(B[0])

    # 判断矩阵 A 和 B 是否可以相乘
    if C_a != R_b:
        return f"Error: {C_a} != {R_b}"

    # 初始化乘积矩阵 AB
    AB = [[0] * C_b for _ in range(R_a)]

    # 计算乘积矩阵 AB
    for i in range(R_a):
        for j in range(C_b):
            for k in range(C_a):
                AB[i][j] += A[i][k] * B[k][j]
    """
    通过三重循环遍历矩阵 A 和 B 的元素,计算乘积矩阵 AB 的每个元素。
    外层循环 for i in range(R_a): 遍历矩阵 A 的每一行。
    中层循环 for j in range(C_b): 遍历矩阵 B 的每一列。
    内层循环 for k in range(C_a): 遍历矩阵 A 的列和矩阵 B 的行,用于计算乘积。
    
    其中,A[i][k] 表示矩阵 A 的第 i 行第 k 列的元素,B[k][j] 表示矩阵 B 的第 k 行第 j 列的元素。
    乘积矩阵 AB 的第 i 行第 j 列的元素初始值为 0。在每次迭代中,
    将矩阵 A 的第 i 行第 k 列的元素与矩阵 B 的第 k 行第 j 列的元素相乘,然后累加到乘积矩阵 AB 的对应位置上。
    通过这三重循环的嵌套,对矩阵 A 和 B 的每个元素进行遍历和计算,最终得到完整的乘积矩阵 AB。"""

    return AB

# 读取矩阵 A 的行数和列数
R_a, C_a = map(int, input().split())

# 读取矩阵 A 的元素
A = []
for _ in range(R_a):
    row = list(map(int, input().split()))
    A.append(row)

# 读取矩阵 B 的行数和列数
R_b, C_b = map(int, input().split())

# 读取矩阵 B 的元素
B = []
for _ in range(R_b):
    row = list(map(int, input().split()))
    B.append(row)

# 计算乘积矩阵 AB
result = multiply_matrices(A, B)

# 输出结果
if isinstance(result, str):
    print(result)
else:
    R_ab, C_ab = len(result), len(result[0])
    print(f"{R_ab} {C_ab}")
    for row in result:
        print(" ".join(str(num) for num in row))

到了这里,关于L1-048 矩阵A乘以B(Python实现) 测试点全过的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • L1-042 日期格式化(Python实现) 测试点全过

    前言: {color{Blue}前言:} 前言: 本系列题使用的是“PTA中的团体程序设计天梯赛——练习集”的题库,难度有L1、L2、L3三个等级,分别对应团体程序设计天梯赛的三个难度,如有需要可以直接查看对应专栏。发布个人的刷题笔记的同时,也是希望可以帮助到有需要的人,我

    2024年02月10日
    浏览(46)
  • L1-050 倒数第N个字符串(Python实现) 测试点全过

    前言: {color{Blue}前言:} 前言: 本系列题使用的是,“PTA中的团体程序设计天梯赛——练习集”的题库,难度有L1、L2、L3三个等级,分别对应团体程序设计天梯赛的三个难度。 更新取决于题目的难度,和学校的事情,但尽可能保证每日更新,若没更新次日补上。 这道题跟上

    2024年02月10日
    浏览(32)
  • L1-031 到底是不是太胖了 测试点全过

    前言: {color{Blue}前言:} 前言: 本系列题使用的是“PTA中的团体程序设计天梯赛——练习集”的题库,难度有L1、L2、L3三个等级,分别对应团体程序设计天梯赛的三个难度,如有需要可以直接查看对应专栏。发布个人的刷题笔记的同时,也是希望可以帮助到有需要的人,我

    2024年02月11日
    浏览(29)
  • 【2023团体程序设计天梯赛CCCC】GPLT2023,L1~L2部分(PTA,L1-089~L1-096,L2-045~L2-048)题解代码&复盘

    概要 L1部分:L1-089~L1-096 L2部分:L2-045~L2-048 L3部分:L3-033~L3-036 L1-089 最好的文档 5 L1-090 什么是机器学习 5 L1-091 程序员买包子 10 L1-092 进化论 10 L1-093 猜帽子游戏 15 L1-094 剪切粘贴 15 L1-095 分寝室 20 L1-096 谁管谁叫爹 20 L2-045 堆宝塔 25 L2-046 天梯赛的赛场安排 L2-047 锦标赛 25 L2-048

    2024年02月01日
    浏览(44)
  • A乘以B PTA

    题目: 看我没骗你吧 —— 这是一道你可以在 10 秒内完成的题:给定两个绝对值不超过 100 的整数 A 和 B,输出 A 乘以 B 的值。 输入格式: 输入在第一行给出两个整数 A 和 B(−100≤A,B≤100),数字间以空格分隔。 输出格式: 在一行中输出 A 乘以 B 的值。 输入样

    2024年01月19日
    浏览(78)
  • PTA L1-064 估值一亿的AI核心代码,详解+每一个测试点的分析

    作者 陈越        单位 浙江大学 本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是: 无论用户说什么,首先把对方说的话在一行中原样打印出来; 消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面

    2024年04月23日
    浏览(35)
  • PTA L2-048 寻宝图

    给定一幅地图,其中有水域,有陆地。被水域完全环绕的陆地是岛屿。有些岛屿上埋藏有宝藏,这些有宝藏的点也被标记出来了。本题就请你统计一下,给定的地图上一共有多少岛屿,其中有多少是有宝藏的岛屿。 输入第一行给出 2 2 2 个正整数 N N N 和 M M M ( 1 N × M ≤ 1 e

    2024年02月02日
    浏览(68)
  • L1-095 分寝室PTA

    学校新建了宿舍楼,共有 n 间寝室。等待分配的学生中,有女生 n0​ 位、男生 n1​ 位。所有待分配的学生都必须分到一间寝室。所有的寝室都要分出去,最后不能有寝室留空。 现请你写程序完成寝室的自动分配。分配规则如下: 男女生不能混住; 不允许单人住一间寝

    2024年02月10日
    浏览(43)
  • PTA L1-095 分寝室 (20 分)

    学校新建了宿舍楼,共有 n n n 间寝室。等待分配的学生中,有女生 n 0 n_0 n 0 ​ ​ 位、男生 n 1 n_1 n 1 ​ ​位。所有待分配的学生都必须分到一间寝室。所有的寝室都要分出去,最后不能有寝室留空。 现请你写程序完成寝室的自动分配。分配规则如下: 男女生不能混住; 不

    2023年04月23日
    浏览(36)
  • 【PTA】L1-059 敲笨钟(C++)

    题目链接:L1-059 敲笨钟 - 团体程序设计天梯赛-练习集 (pintia.cn)  题目要求:  输入格式: 输出格式: 输入样例: 输出样例: 思路:  代码: 测试结果: 微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。为了增加敲钟的趣味性,还会糟改几句古

    2024年04月11日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包