Strassen算法中的递归

时间:2012-08-07 03:26:54

标签: c++ algorithm recursion strassen

我想知道如何在Strassen的算法中进行递归调用,以及它们究竟是在哪里。

据我所知,7乘法器比我们原来的8乘法器效率更高,但我对如何递归计算这些乘法器感到困惑。特别是,如果我们遵循分界并征服范式,那么矩阵的哪一部分我们正在“分裂”,我们将如何进行这样做直到我们得到一个基本情况,我们可以分别征服递归部分? / p>

谢谢!

2 个答案:

答案 0 :(得分:4)

我们在计算这7个乘数时进行递归调用。 首先,我们将矩阵的大小扩展到2的幂,然后在每一步我们将每个矩阵分成4个部分。

答案 1 :(得分:2)

我们将A和B均分为四分之一或十六分之六或六十四分之一等,以便将它们减少到2x2矩阵。 Strassen的方法只能应用于类型为2 ^ n x 2 ^ n的矩阵。

对于类型为2 ^ n x 2 ^ n的矩阵,您可以零填充,直到满足要求为止。