我设法实现了一个就地解决方案,通过对矩阵乘法的朴素的Divide & Conquer算法进行索引操作,该算法在每次递归中需要8次递归调用。然而,当我尝试实现Strassen算法时,我找不到一种就地实现它的方法。相反,在使用C语言编程时,我必须为7个递归调用分配19个子矩阵。
如何就地实现Strassen算法?或者这是可能的?
发布于 2013-11-13 21:44:45
假设您要将两个n×n矩阵相乘。您将需要容纳4n^2个整数的空间: 2n^2用于被乘法的矩阵,n^2用于结果,最后的n^2用于临时工作。您可以递归地使用临时工作矩阵。也就是说,对于通过添加Strassen's而创建的两个子矩阵中的每个子矩阵,使用其中的1/4,将1/4用于乘法的结果,最后1/4用于该乘法的临时工作。等等。只要你想要递归。
https://stackoverflow.com/questions/19945913
复制相似问题