矩阵相乘最优顺序---动态规划

数据结构与算法分析---Java描述(第三版) 10.3.2


虽然矩阵乘法运算是不可交换的,但它是可结合的。这就意味着矩阵的乘积可以以任意顺序添加括号然后再计算其值。

例如:

给定四个矩阵ABCD。A的维数=50 X10,B的维数=10 X 40,C的维数=40 X 30,D的维数=30X5



利用书中算法核心代码模拟矩阵相乘最优顺序,代码如下:

import java.util.Random;


public class MatrixMulBestOrder {
    private static int[][] sign;
    private static int d[][]=new int[102][2];//d[i][0]为第i个空隙中左括号的数量,d[i][1]为第i个空隙中右括号的数量
    private static final int N=10;
    public static void main(String[] args) {
        /*
        模拟10个矩阵,行列数存储在数组c中
        对于1<=i<=N,令c[i]是矩阵A(i)的列数。于是A(i)有c[i-1]行。
        */

        int row,col;
        int[] c=new int[N+1];//只有10个矩阵,但是创建容量为11的数组,c[0]是第一个矩阵的行数
        Random random=new Random();
        row 
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值