• 算法导论_P43_矩阵相乘


     1 ### 按二维数组格式进行输出二维数组
     2 def arr2_print(arr):
     3     for i in range(len(arr)):
     4         if i == 0:
     5             print("[",arr[i])
     6         elif i == len(arr)-1:
     7             print(" ",arr[i],"]")
     8         else:
     9             print(" ",arr[i])
    10     return
    11 ### 实现矩阵相乘
    12 def square_matrix_multiply(arr_1,arr_2):
    13     # 构建存储矩阵乘法结果的二维数组,并将数据初始化为 0,维度: arr_1 的行数  X  arr_2 的列数
    14     arr_3 = [  [0 for j in range(len(arr_1))] for i in range(len(arr_2[0])) ]
    15     for i in range(len(arr_1)):             # len(arr_1)    arr_1  行数
    16         for j in range(len(arr_2[0])):      # len(arr_2[0]) arr_2  列数
    17             # arr_1 的列 和 arr_2 的行 相同,为计算结果矩阵中一个元素时所需要的乘法次数
    18             for k in range(len(arr_1[0])):
    19                 arr_3[i][j] = arr_3[i][j] + arr_1[i][k] * arr_2[k][j]
    20     return arr_3
    21 
    22 if __name__ == '__main__':
    23     arr_1 = [[1,2,3],[4,5,6]]
    24     arr_2 = [[1,4],[2,5],[3,6]]
    25     arr_3 = square_matrix_multiply(arr_1,arr_2)
    26     # print("矩阵1:
    ",arr_1,"
    矩阵2:
    ",arr_2,"
    二者矩阵相乘结果为:",arr_3)
    27     print("矩阵1:")
    28     arr2_print(arr_1)
    29     print("矩阵2:")
    30     arr2_print(arr_2)
    31     print("二者矩阵相乘结果为:")
    32     arr2_print(arr_3)
    33 ''' 运行结果:
    34 矩阵1:
    35 [ [1, 2, 3]
    36   [4, 5, 6] ]
    37 矩阵2:
    38 [ [1, 4]
    39   [2, 5]
    40   [3, 6] ]
    41 二者矩阵相乘结果为:
    42 [ [14, 32]
    43   [32, 77] ]
    44 '''
  • 相关阅读:
    Bootstrap4(28): 滚动监听(Scrollspy)
    Bootstrap4(27): 弹出框
    Bootstrap4(26): 提示框
    Bootstrap4(25): 模态框
    Bootstrap4(24): 轮播
    Bootstrap4(23): 自定义表单
    Bootstrap4(22): 输入框组
    Bootstrap4(21): 表单控件
    Bootstrap4(20): 表单
    Bootstrap4(19): 面包屑导航(Breadcrumb)
  • 原文地址:https://www.cnblogs.com/lyj0123/p/13304286.html
Copyright © 2020-2023  润新知