矩阵链相乘(递归、动态规划解法)

题目描述有若干个矩阵{Ai},元素都为整数且已知矩阵大小。 如果要计算所有矩阵的乘积A1 * A2 * A3 .. Am,最少要多少次整数乘法?输入 第一行一个整数n(n <= 100),表示一共有n-1个矩阵。 第二行n个整数B1, B2, B3… Bn(Bi <= 100),第i个数Bi表示第i个矩阵的行数和第i-1个矩阵的列数。 等价地,可以认为第j个矩阵Aj(1 <= j <= n
摘要由CSDN通过智能技术生成

题目描述

有若干个矩阵{Ai},元素都为整数且已知矩阵大小。
如果要计算所有矩阵的乘积A1 * A2 * A3 .. Am,最少要多少次整数乘法?

输入
第一行一个整数n(n <= 100),表示一共有n-1个矩阵。
第二行n个整数B1, B2, B3… Bn(Bi <= 100),第i个数Bi表示第i个矩阵的行数和第i-1个矩阵的列数。
等价地,可以认为第j个矩阵Aj(1 <= j <= n - 1)的行数为Bj,列数为Bj+1。
输出
一个整数,表示最少所需的乘法次数
样例输入
6
10 1 50 50 20 5
样例输出
3650

解题思路

矩阵A1(3行4列),矩阵A2(4行5列),A1*A2=A3(3行5列),A3中一共有十五个元素,计算每个元素都需要做4次乘法,因此计算矩阵A3一共要做3*4*5次乘法运算

下列四个矩阵M1(10*20)、M2(20*50)、M3(50*1)、M4(1*100)
M1(M2(M3M4)) 共需125000次乘法
(M1(M2M3))M4 共需2200次乘法
不同的相乘顺序,所需要的乘法次数是有差别的

现在假如要计算Ai*A2*A3*… Ak*…Aj的值,则肯定存在某个k值将这些矩阵分成两部分,使

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值