【问题标题】:Why doesn't my strassen algorithm work for 3x3 matrices?为什么我的 strassen 算法不适用于 3x3 矩阵?
【发布时间】:2018-01-29 04:25:27
【问题描述】:

我已经为 strassen 算法实现了以下代码 http://www.sanfoundry.com/java-program-strassen-algorithm/。 它适用于大多数矩阵,包括 2x2 和 4x4 矩阵,但不适用于 3x3 矩阵。任何想法为什么以及如何解决它?

【问题讨论】:

  • 显示相关代码片段。
  • 您需要添加一个minimal reproducible example,这将包括代码在问题本身中,而不是链接。
  • @1201ProgramAlarm code is too big enter here
  • 这就是为什么我们强调minimal

标签: c++ strassen


【解决方案1】:

看看施特拉森的工作方式。它的工作原理是分而治之。您没有发布代码,但它可能与尝试将 3x3 矩阵划分为 4 个无法完成的子矩阵有关。您可以用零填充 3x3 以创建一个矩阵,其维度可以拆分或仅使用基本矩阵 mult。

此外,Strassen 和递归 MM 算法需要一个基本情况来进行常规矩阵乘法,因为 Strassen 仅适用于较大的矩阵。取决于您的系统,但我的笔记本电脑需要大于 256x256 的矩阵才能让 Strassen 看到改进。

【讨论】:

    猜你喜欢
    • 2012-11-13
    • 1970-01-01
    • 2010-12-27
    • 2017-04-19
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    相关资源
    最近更新 更多