【问题标题】:Recursion in Strassen's AlgorithmStrassen 算法中的递归
【发布时间】:2012-08-07 03:26:53
【问题描述】:

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

我知道 7 个乘数比我们原本的 8 个更有效,但我对如何递归计算这些乘数感到困惑。特别是,如果我们遵循分而治之的范式,我们究竟要“划分”矩阵的哪一部分,以及我们将如何做到这一点,直到我们达到可以分别征服递归部分的基本情况?

谢谢!

【问题讨论】:

  • Strassen 不值得 O(n
  • 七个乘法中的每一个本身都再次使用 strassen 完成。

标签: c++ algorithm recursion strassen


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多