问题 找到矩阵产品中的单个错误元素?


给出了三个N * N矩阵A,B,C。 C与A和B的乘积相同,只是恰好有一个元素是错误的。找到它的天真算法需要N ^ 3时间。我们能做得更快吗?


9203
2017-08-26 11:59


起源



答案:


拿一个矢量 v = (1 1 1 1 ... 1)Ť,并计算: u = Cv - A(Bv)

u 等于 (C-AB)v,因此除了一个元素之外,它将在所有元素中都为零。该元素的索引对应于行索引,其中C与AB不同。元素的价值(a)是非零元素的值 C-AB

要查找列索引,可以使用向量重复此操作 v2 = (1 2 3 4 ... n)Ť。现在非零元素的值是 ac,哪里 a 是我们之前和之前计算的值 c 是列索引。

由于我们只进行了一些矩阵*向量乘法,因此运行时间为O(n ^ 2)。


12
2017-08-26 12:16