Почему мой алгоритм Штрассена не работает для матриц 3х3?

Я реализовал следующий код для алгоритма Штрассена
http://www.sanfoundry.com/java-program-strassen-algorithm/.
Он работает для большинства матриц, включая матрицы 2×2 и 4×4, но не работает для матриц 3×3. Есть идеи, почему и как я могу это исправить?

-3

Решение

Посмотрите, как работает Штрассен. Это работает, разделяй и властвуй. Вы не опубликовали свой код, но это, вероятно, связано с попыткой разделить матрицу 3×3 на 4 подматрицы, что невозможно сделать. Вы можете заполнить 3×3 нулями, чтобы создать матрицу с размерами, которые можно разделить, или просто используйте базовую матрицу мульт.

Кроме того, Strassen и рекурсивные MM-алгоритмы нуждаются в базовом случае, в котором речь идет о умножении регулярных матриц, поскольку Strassen полезен только для больших матриц. Зависит от вашей системы, но моему ноутбуку нужны матрицы размером больше 256×256, чтобы Штрассен мог видеть улучшение.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]