【发布时间】:2012-12-28 01:32:29
【问题描述】:
请任何人指出如何进行矩阵乘法的算法(确定乘法的顺序)。我尝试了完全不同的设计方式,但不幸的是,没有任何效果:(例如,我有以下矩阵链之一要相乘:
((((0(((((((((((((((1 2)3)4)5)6)7)8)9)10)11)12)13)14)15)16))17)18)19
((((((((((((0 1)2)3)4)5)6)7)8)9)10)(11(12(13(14(15(16(1718))))))))19
(((((0 1)(2(((3 4)(5 6))(((7 8)(9(10 11)))((((12 13)14)15)16)))))17)18)19
(((((((0 1)2)3)4)5)(6(7(8(9(10(11(12 13))))))))(((((14 15)16)17)18)19)
有人可以为所有情况共享一个通用算法吗?
注意:
1.我只需要乘法。
2.矩阵有不同的维度,所以它们不是正方形的。 (当然,矩阵的维度是一致的)
3.也许this topic会有所帮助,但我真的不知道如何应用在这里。
提前感谢所有试图提供帮助的人!
【问题讨论】:
-
由于矩阵是关联的并且
(n x m)(m x p) = (n x p),任何订单都不起作用? -
@irrelephant,是的,你是对的。但是我正在实现最优矩阵链乘法的算法,所以,假设这些链对于某些矩阵来说是最优的。我唯一不明白的是如何根据提供的顺序相乘。
-
如果矩阵在 nxm dim 数组中,这很简单,你能解释一下上述格式中的行吗?
-
好吧,我google了一下,原谅我的无知。
-
根据您发布的解析链接,您需要帮助解析/编译这串矩阵吗?