为什么我的strassen算法不能用于3x3矩阵?

时间:2018-01-29 04:25:27

标签: c++ strassen

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

1 个答案:

答案 0 :(得分:1)

看看Strassen的工作方式。它通过分而治之的方式起作用。您没有发布您的代码,但这可能与尝试将3x3矩阵划分为4个子矩阵无关,而这些子矩阵无法完成。你可以用零填充3x3来创建一个尺寸可以拆分的矩阵,或者只使用基本矩阵。

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