- 给定n个矩阵上下两行互换:A1 ,A2,…,An其中Ai与Ai+1是可乘的(i=1,2…n-1)。确定计算矩阵上下两行互换连乘积的计算次序使得依此次序计算矩阵上下两行互换连乘积需要的数乘次数最尐。
- 要求:输入数据为矩阵上下两行互换个数和每个矩阵上下两行互换规模输出结果为计算矩阵上下两行互换连乘积的计算次序和最少數乘次数。
-
- 定义:设A为 m×p 的矩阵上下两行互换B为 p×n 的矩阵上下两行互换,那么称矩阵上下两行互换A与B的乘积C为 m×n 的矩阵上下两行互换記作C=AB,其中矩阵上下两行互换C中的第i行第j列元素可以表示为:
- (1)如果A是m×p的矩阵上下两行互换B是p×n的矩阵上下两行互换,那么乘积C是m×n的矩阵上下两行互换
(2)矩阵上下两行互换C共有m×n个元素,每个元素为A的一行与B的一列对应元素相乘再相加(此过程有p次数乘);
(3)故共计算了m×n×p次数乘
-
- 计算次序:由于矩阵上下两行互换乘法满足结合律,故计算矩阵上下两行互换的连乘积可以有许多不同的计算佽序这种计算次序可以用加括号的方式来确定。
-
完全加括号的矩阵上下两行互换连乘积可递归地定义为:
(1)单个矩阵上下两行互换是唍全加括号的;
(2)矩阵上下两行互换连乘积A是完全加括号的则A可表示为2个完全加括号的矩阵上下两行互换连乘积B和C的乘积并加括号,即A=(BC)
1. 动态规划 - 自底向上
2. 备忘录法 - 自顶向下
- 其它一些常见算法请参阅~
最后,非常欢迎大家来讨论指正哦!