c++ - 适用于任何输入的施特拉森算法

标签 c++ algorithm matrix-multiplication

我们如何更改 Strassen algorithm这样它就适用于任何大小的矩阵(例如 n=5)?

最佳答案

你所要做的就是用 0 的行和列填充矩阵,直到它们成为大小为 2 的幂的方阵。或者换句话说:

将要相乘的矩阵放在两个 2^n x 2^n 矩阵的左上角。将所有未使用的元素设置为0。然后运行算法,您想要的结果将在结果矩阵的左上角。

关于c++ - 适用于任何输入的施特拉森算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5518854/

相关文章:

c++ - union 的平等比较?

c++ - 越界访问数组是否被视为违反类型安全或违反内存安全?

java - 分析短算法的运行时间

ios - 没有匹配的函数可调用 'mmul'

matlab - 如何减少存在 for 循环和矩阵向量乘法的计算时间

c++ 使用 recvmmsg 丢弃 udp 数据包

c++ - MPI:带有 MPI_ANY_SOURCE 的 MPI_recv 无法接收来自某些进程的消息

algorithm - 在最小堆中找到 k 个最小元素 - 最坏情况复杂度

PHP 元素数组,按循环 "animation"排序?

python - OpenGL正确的矩阵变换顺序以在定点旋转对象